asp.net mvc Custom HandleUnauthorizedRequest

时间:2013-04-22 06:38:36

标签: asp.net-mvc asp.net-mvc-3

我正在使用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 个答案:

答案 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,则您的解决方案无效。