Я начал разрабатывать API REST для моего C# /. Net приложения WCF.Пользовательский UserNamePasswordValidator с подробной информацией о возврате?
Я использую базовую HTTP-аутентификацию с помощью настраиваемого UserNamePasswordValidator. Он аутентифицирует мои методы 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 Несанкционированное» клиенту. Я знаю, что так оно и должно быть, но возможно ли в какой-то момент отправить некоторую подробную информацию моему абоненту? Некоторое настроенное сообщение об ошибке или более подробная информация. Если нет, у моего клиента только аутентификация не удалось получить http info, и этого недостаточно в моем случае.
UserNamePasswordValidator является ** Аутентификация ** расширяемость и не ** Авторизация ** но использование HttpStatusCode.Unauthorized все еще правильна, как [HTTP RFC2616 10.4.2 указывает] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html), что 401 Несанкционированное на самом деле означает ** Аутентификация **. –