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

asp.net-mvc – ASP.net MVC成员资格重定向,具体取决于角色

发布时间:2020-12-16 06:53:56 所属栏目:asp.Net 来源:网络整理
导读:我有两种类型的角色[Admin,HelpDeskAdmin]. 我有一个登录视图(两个用户都转到相同的登录链接),我想在登录后检查他们的角色,并在经过身份验证后重定向到各自的管理页面.下面的代码不会将登录用户标识为第一次出现在角色中并重新加载登录页面,第二次登录时它会
我有两种类型的角色[Admin,HelpDeskAdmin].

我有一个登录视图(两个用户都转到相同的登录链接),我想在登录后检查他们的角色,并在经过身份验证后重定向到各自的管理页面.下面的代码不会将登录用户标识为第一次出现在角色中并重新加载登录页面,第二次登录时它会正确重定向.

这是否与第一次检查时没有到位的身份验证cookie有关?我怎么能完成这个场景?

[HttpPost]
public ActionResult LogOn(LogOnModel model,string returnUrl)
{
if (ModelState.IsValid)
{
  if (MembershipService.ValidateUser(model.UserName,model.Password))
  {
     FormsService.SignIn(model.UserName,model.RememberMe);
     if (!String.IsNullOrEmpty(returnUrl))
     {
         return Redirect(returnUrl);
     }
     else
     {
         if (Roles.IsUserInRole("Admin"))
         {
              //go to admin landing page
              return RedirectToAction("Index","Manage"); 
         }
          else if (Roles.IsUserInRole("HelpDesk"))
          {
              //go to helpdesk landing page
              return RedirectToAction("Index","Interview"); 
          }
          else /******FIRST TIME THROUGH IT ALWAYS GOES HERE *******/
             return RedirectToAction("Index","Home");  //not in any of those roles
      }
}
else
     {
       ModelState.AddModelError("","The user name or password provided is incorrect.");
      }
}
 // If we got this far,something failed,redisplay form
return View(model);
}

解决方法

在处理下一个请求并设置了身份验证Cookie之前,用户在技术上不会登录….

可以在另一个Action方法中执行重定向逻辑,也可以使用此Action中的Roles.IsUserInRole(model.UserName,“Admin”)[[注意指定用户名]]来提取用户信息.

(编辑:李大同)

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

    推荐文章
      热点阅读