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 情報しかなく、私の場合は十分ではありません。