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)中显示警告窗口警报。

请回答。

4

1 回答 1

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,您的解决方案将不起作用。

于 2013-04-23T18:13:12.843 回答