Я создаю сайт, основанный на ASP.NET MVC 5
, который использует аутентификацию на основе OWIN
. Я создал новый Area
в приложении для панели администратора. Я хотел бы иметь другую страницу входа в систему, отличную от обычной.ASP.NET MVC 5 OWIN Area Authentication
Например, когда я перехожу на http://site/admin/home/index
, он должен подтвердить авторизацию и перенаправить на адрес http://site/admin/account/login
, а не перейти на страницу входа пользователя на сайт.
Я уже пробовал реализовать пользовательский атрибут Authorize
. Тем не менее, я как-то чувствую, что это неправильный подход.
Может ли кто-нибудь предложить лучшее или более правильное решение для этого?
Edit: Пользовательские реализации
public class AuthorizeAreaAttribute : AuthorizeAttribute
{
public string Url { get; set; }
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
{
filterContext.HttpContext.Response.Redirect(Url);
filterContext.HttpContext.Response.End();
}
base.OnAuthorization(filterContext);
}
}
Почему вы считаете, что это нехорошее решение для перехода на пользовательский атрибут Authorize? – tire0011
@ tire0011, я обнаружил, что внутреннее исключение выбрасывается «Заголовки уже отправлены!» При использовании настраиваемого атрибута. –
Можете ли вы опубликовать свой код из пользовательского атрибута? – tire0011