0

WCF による c#/.net アプリ用の REST API の開発を開始しました。

カスタマイズされた UserNamePasswordValidator による基本 HTTP 認証を使用します。API メソッドを認証します。

このサンプルコードに基づいており、問題なく動作させることができました:

public class CustomUserNameValidator : UserNamePasswordValidator
{
    public override void Validate(string userName, string password)
    {

        if (null == userName || null == password)
        {
            throw new ArgumentNullException("You must provide both the username and password to access this service");
        }

        if (!(userName == "user1" && password == "test") && !(userName == "user2" && password == "test"))
        {
            throw new FaultException("Unknown Username or Incorrect Password");
        }
    }
}

認証に失敗すると、クライアントに「401 Unauthorized」しか返せません。それが本来あるべき姿であることはわかっていますが、この場合、何らかの詳細情報を発信者に送り返すことは可能ですか? カスタマイズされたエラー メッセージまたはより詳細な情報。そうでない場合、クライアントには認証に失敗した http 情報しかなく、私の場合は十分ではありません。

4

1 に答える 1

2

たぶん、 WebFaultException<> を使用する必要があります。私の場合、次のように使用しました。throw new WebFaultException<string>("Bad Request", HttpStatusCode.Unauthorized);

于 2012-06-29T11:00:40.970 に答える