2013-04-22 8 views
0

Я работаю с asp.net mvc3.asp.net mvc Custom HandleUnauthorizedRequest

У меня есть пользовательский авторизованный атрибут.

Я должен переопределить метод HandleUnauthorizedRequest (AuthorizationContext filterContext)

Мой исходный код выглядит следующим образом.

protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) 
{ 
    switch (unAuthorizedStatus) 
    { 
     case UnauthorizedStatus.NonAuthenticated: 
      // I have a question here. 
      break; 
     default: base.HandleUnauthorizedRequest(filterContext); break; 
    } 
} 

// У меня есть вопрос здесь.

Если пользователь не выполнил аутентификацию пользователя (случай UnauthorizedStatus.NonAuthenticated), чтобы вернуться к предыдущему URL-адресу, И я хочу показать предупреждение о предупреждении в JavaScript (или jquery).

Ответьте пожалуйста.

+0

Ответьте мне: filterContext.HttpContext.Response.Write (""); – isnotnull

+0

Пожалуйста, скажите мне, есть ли лучший способ. – isnotnull

ответ

0

Вы уверены, что вам нужно переопределить метод HandleUnauthorizedRequest?

Я следовал подходу, указанному здесь: http://blogs.msdn.com/b/rickandy/archive/2011/05/02/securing-your-asp-net-mvc-3-application.aspx. Его так хорошо они завернули в MVC4.

По существу, вы обрабатываете только метод OnAuthorization. Остальное вы выходите на базовый атрибут. Это имеет приятную возможность автоматически перенаправлять вас на страницу входа в систему, если вы не прошли проверку.

Если вы действительно хотите автоматически перемещать пользователя на исходную страницу, вы можете переопределить метод, как вы изначально думали, но вместо этого отправить пользователю новый метод действий и передать URL-адрес возврата из HttpContext (ссылаясь на url, я думаю). Затем вы можете показать сообщение пользователю в html, а затем автоматически перевести пользователя обратно на свою исходную страницу через пару секунд, подождите с помощью метаобновления.

Ваше решение не будет работать, если у конечного пользователя отключен JS.

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