如果他们是管理员,我想将登录用户重定向到管理页面,
if (User.IsInRole("Administrator"))
{
return RedirectToAction("AdminLayout", "Home");
}
else
{
return RedirectToAction("Index", "Home");
}
但始终会执行else
的返回。
在数据库中,我插入了一个用户名为“admin”并带有UserId=1
密码“admin”
在角色表中我有RoleId=1
和RoleName=Administrator
在UsersInRoles表中我有RoleId=1
和UserId=1
更新
在web.config中,
<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
<providers>
<clear/>
<add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/>
</providers>
</roleManager>
答案 0 :(得分:1)
您何时尝试重定向?如果它在下一页加载之前,User
对象将无法解析。在代码中设置断点,我想您会发现User
是null
。当然,null
永远不会担任管理员角色。
要解决此问题,您可以
在下一页上进行重定向
或者
从登录过程中获取用户名,然后找到登录用户并检查角色。