首页 文章

asp.net mvc Custom HandleUnauthorizedRequest

提问于
浏览
0

我正在使用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

    您确定需要覆盖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,您的解决方案将无法运行 .

相关问题