加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – MVC授权 – 多个登录页面

发布时间:2020-12-16 04:16:00 所属栏目:asp.Net 来源:网络整理
导读:我在MVC控制器中有以下方法,当用户未登录时,该方法重定向到登录页面. [Authorize]public ActionResult Search() { return View();}[Authorize]public ActionResult Edit() { return View();} 是否有一种快速/简单/标准的方法将第二个操作重定向到除web.confi
我在MVC控制器中有以下方法,当用户未登录时,该方法重定向到登录页面.
[Authorize]
public ActionResult Search() {
  return View();
}

[Authorize]
public ActionResult Edit() {
  return View();
}

是否有一种快速/简单/标准的方法将第二个操作重定向到除web.config文件中定义的页面之外的其他登录页面?

或者我必须做些什么

public ActionResult Edit() {
  if (IsUserLoggedIn)
    return View();
  else 
     return ReturnRedirect("/Login2");
}

解决方法

我认为可以通过创建自定义授权过滤器:
public class CustomAuthorization : AuthorizeAttribute
{
    public string LoginPage { get; set; }

    public override void OnAuthorization(AuthorizationContext filterContext)
    {
        if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
        {
            filterContext.HttpContext.Response.Redirect(LoginPage);
        }
        base.OnAuthorization(filterContext);
    }
}

在你的行动中:

[CustomAuthorization(LoginPage="~/Home/Login1")]
public ActionResult Search() 
{
  return View();
}

[CustomAuthorization(LoginPage="~/Home/Login2")]
public ActionResult Edit() 
{
  return View();
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读