我正在使用asp.net mvc3 .
我有一个自定义AuthorizeAttribute .
我必须重写方法 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)中显示警告窗口警报 .
请回答 .
1 回答
您确定需要覆盖HandleUnauthorizedRequest方法吗?
我按照这里列出的方法:http://blogs.msdn.com/b/rickandy/archive/2011/05/02/securing-your-asp-net-mvc-3-application.aspx . 它非常好,将它包装成MVC4 .
实质上,您只处理OnAuthorization方法 . 其余的你留给基础属性 . 如果您未经身份验证,那么它具有自动将您路由到登录页面的好功能 .
如果你真的想要自动导航用户回到原始页面,你可以像你原先想的那样覆盖方法,而是将用户发送到一个新的action方法,并从HttpContext传递返回URL(我认为是指url) ) . 然后,您可以在html中向用户显示消息,然后在几秒钟后通过元刷新自动导航用户返回其原始页面 .
如果最终用户已禁用JS,您的解决方案将无法运行 .