У меня есть служба восстановления ASP MVC3, использующая базовую аутентификацию. После поиска переполнения стека я создал следующий код.asp mvc 3 ActionFilter для базовой аутентификации
public class BasicAuthentication : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var req = filterContext.HttpContext.Request;
if (String.IsNullOrEmpty(req.Headers["Authorization"]))
{
filterContext.Result = new HttpNotFoundResult();
}
else
{
var credentials = System.Text.ASCIIEncoding.ASCII
.GetString(Convert.FromBase64String(req.Headers["Authorization"].Substring(6)))
.Split(':');
var user = new { Name = credentials[0], Password = credentials[1] };
if(!(user.Name == "username" && user.Password == "passwords"))
{
filterContext.Result = new HttpNotFoundResult();
}
}
}
}
1) Является ли ActionFilterAttribute лучшим способом для этого?
2) Установлен фильтрContext.Result правильный способ запретить доступ к методу контроллера?
3) Есть ли что-нибудь, что я делаю неправильно?
Спасибо.
-Nick
вы используете основной для форм/пользовательского типа AUTH с базовым (двухступенчатый AUTH) или все-таки с помощью учетных записей домена? –