自定义UserNamePasswordValidator具有详细的退货信息?

时间:2012-06-29 10:35:20

标签: wcf http authentication rest

我开始为WCF的c#/。net app开发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信息,在我的情况下还不够。

1 个答案:

答案 0 :(得分:2)

也许你应该使用WebFaultException&lt;&gt;在我的情况下,我这样使用:throw new WebFaultException<string>("Bad Request", HttpStatusCode.Unauthorized);