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