2014-04-25 4 views
0

Я хотел бы спросить, есть ли у C# или mvc простой способ перенаправить пользователя обратно на страницу, из которой они пришли, если они пытаются ввести неавторизованный страницы и должны войти в систему?MVC 4 перенаправляет страницу входа на предыдущую страницу после авторизации пользователя до

У меня уже есть очень огромное веб-приложение, и я слишком ленив, чтобы переутомлять каждый метод со строкой направления на его страницу для случая несанкционированного доступа. Поэтому, если это возможно, я хотел бы выбрать другой способ, более обременительный для изменений.

Для авторизации в настоящее время я использую пользовательский класс, унаследованный от AuthorizeAttribute:

public class CustomAuthorizationAttribute : AuthorizeAttribute 
{ 
    public RolesEnum[] RequiredRoles; 

    protected override bool AuthorizeCore(HttpContextBase httpContext) 
    { 
     if (httpContext == null) throw new ArgumentNullException("httpContext"); 
     if (!httpContext.User.Identity.IsAuthenticated) return false; 
     if (RequiredRoles.Contains(AzaraSession.Current.UserComparison.GetRole())) return true; 
     else return false; 
    } 
} 

ответ

0

мы можем сохранить путь маршрута в сеансе перед перенаправлением на страницу аутентификации и сразу же после аутентификации с помощью сеанса мы можем перенаправить обратно,

Это будет одноразовый код изменений.

Спасибо и дадим нам знать в случае возникновения каких-либо проблем.

+0

Этот ответ довольно расплывчатый. Попробуйте и верните его пример. –

0

Я нашел очень простое решение в AuthorizeAttribute напрямую. Он создает параметр 'returnUrl', который имеет URL-адрес неудачной страницы входа. Поэтому мне просто нужно взять этот параметр в методе «LogOn» и «Перенаправить» на эту страницу после входа в систему.

Смежные вопросы