我正在创建一个ASP.NET webform应用程序,我有不同级别的用户。我已经阅读了FormsAuthentication
,如果我正在实现它,我必须在web.config文件中提供loginUrl
。在成功验证后,每个人都被重定向到相同的loginUrl。
但对于我的网站,我的用户拥有不同的凭据。因此,当具有 Admin 凭据的用户登录时,系统会将其重定向到Mysite.com/Admin/Index.aspx
页面。如果用户使用学生凭据登录,则会将其重定向到Mysite.com/Student/index.aspx
页面。
有人可以指导我或建议我如何实现这个目标吗?
由于
答案 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)
但是如果您有不同的登录页面需要检查重定向URL,或者如果您没有重定向URL,则需要检查refferer URL以显示正确的登录页面。否则,对于会话超时,您的应用将通过显示错误的登录页面而结束。