我正在使用带有EF codefirst的Asp.net 4.5.1 webForm应用程序。用于身份验证我正在使用Microsoft.AspNet.Identity。在检查用户是否正确后,我想在登录页面中检查用户的角色。如果用户处于管理员角色,则将用户发送到管理员文件夹(页面),或者如果用户处于用户角色,则将用户发送到用户文件夹(页面)。如何检查用户是否处于Admin角色?
这是我的登录代码:
protected void btnLogin_Click(object sender, EventArgs e)
{
if (IsValid)
{
// Validate the user password
var manager = new UserManager();
ApplicationUser user = manager.Find(inputEmail.Text, inputPassword.Text);
if (user != null)
{
IdentityHelper.SignIn(manager, user, false);
if (//user is in admin role)
{
Response.Redirect("UserPage");
}
else
{
Response.Redirect("AdminPage");
}
}
else
{
//Show error message that User is Incorrect
}
}
}
答案 0 :(得分:0)
尝试使用UserManager.IsInRole(User.Identity.GetUserId(), "RoleName")
此外,请参阅:Understand IsInRole with character case
提示:尝试在Visual Studio中的“对象浏览器”(Ctrl + Alt + J)中浏览任何程序集。