表单身份验证重定向到不同的登录页面C#

时间:2014-02-27 17:26:13

标签: c# asp.net vb.net authentication webforms

我正在创建一个ASP.NET webform应用程序,我有不同级别的用户。我已经阅读了FormsAuthentication,如果我正在实现它,我必须在web.config文件中提供loginUrl。在成功验证后,每个人都被重定向到相同的loginUrl。

但对于我的网站,我的用户拥有不同的凭据。因此,当具有 Admin 凭据的用户登录时,系统会将其重定向到Mysite.com/Admin/Index.aspx页面。如果用户使用学生凭据登录,则会将其重定向到Mysite.com/Student/index.aspx页面。

有人可以指导我或建议我如何实现这个目标吗?

由于

2 个答案:

答案 0 :(得分:2)

根据@elolos评论,您所要做的就是在登录后将其重定向到正确的页面。

例如

public ActionResult Login(LoginModel model){
   if (!(ModelState.IsValid) || !(Membership.ValidateUser(model.username, model.password))){
     // handle error
   }

   .. set session variables, cookies ,etc ..

   if (User.IsInRole("Admin")){
      return Redirect(Url.Action("Index","Admin"))
   }
   if (User.IsInRole("Student")){
      return Redirect(Url.Action("Index","Student"))
   }

   ... and so on ...
}

答案 1 :(得分:0)

这可能会有所帮助 https://social.technet.microsoft.com/wiki/contents/articles/19740.forms-authentication-with-multiple-login-pages.aspx

但是如果您有不同的登录页面需要检查重定向URL,或者如果您没有重定向URL,则需要检查refferer URL以显示正确的登录页面。否则,对于会话超时,您的应用将通过显示错误的登录页面而结束。

相关问题