MVC 4在用户未登录后从登录页面重定向到上一页面;t之前授权

本文关键字:登录 一页 授权 重定向 用户 MVC | 更新日期: 2023-09-27 17:59:55

我想问一下,如果用户试图进入未经授权的页面并必须登录,c#或mvc是否有一种简单的方法可以将用户重定向回他们来自的页面?

我已经有了一个非常庞大的网络应用程序,我有点太懒了,不愿意在未授权的情况下,用指向其页面的方向字符串来过度使用每一个方法。所以如果可能的话,我想选择另一种方式,更灵活地适应变化。

对于目前的授权,我使用从AuthorizeAttribute:继承的自定义类

public class CustomAuthorizationAttribute : AuthorizeAttribute
{
    public RolesEnum[] RequiredRoles;
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        if (httpContext == null) throw new ArgumentNullException("httpContext");
        if (!httpContext.User.Identity.IsAuthenticated) return false;
        if (RequiredRoles.Contains(AzaraSession.Current.UserComparison.GetRole())) return true;
        else return false;
    }
}

MVC 4在用户未登录后从登录页面重定向到上一页面;t之前授权

我们可以在重定向到身份验证页面之前在Session中保存路由路径,在会话的帮助下进行身份验证后,我们可以立即重定向回

这将是一次代码更改。

谢谢,如果有任何问题,请告诉我们。

我直接在AuthorizeAttribute中找到了一个非常简单的解决方案。它创建了一个参数"returnUrl",该参数具有失败登录页面的url。所以我只需要在"LogOn"方法中取这个参数,并在登录操作后"重定向"到此页面。