这是我的登录示例代码:
if (WebSecurity.Login(playerModel.WorkerID, playerModel.Password))
{
if (Roles.IsUserInRole(User.Identity.Name, "Administrator"))
{
// display the admin panel
ViewBag.Message = "Admin Panel";
return View("Index");
}
else
{
ViewBag.ButtonText = "Log In";
ViewBag.Message = "You are not an Admin user";
return View();
}
}
出于某种原因,我第一次登录时,"Administrator"
即使他们在Role
表格中正确,用户也不在。我也试过用这个:
Roles.GetRolesForUser();
这将返回一个空数组。我假设用户登录存在限制,回发发生然后能够检查角色。但我希望有一个解决方法(或者我有问题)。
回发后,Roles.IsUserInRole
和Roles.GetRolesForUSer
方法都可以正常工作。