我是ASP.NET的新手,我遇到了一个奇怪的问题。
我已成功登录(我的登录部分视图在User.Identity.Name
为真时使用Request.isAuthenticated
显示我的用户名),然而,当我尝试访问受{{1保护的控制器时(我是作为老师登录的),他几乎总是将我重定向到登录页面。所以我登录并且我可以访问该网页,但如果我在登录后仍然需要刷新30秒才知道我的用户名仍在打印,而且我似乎仍然记录了。
有什么想法吗?
答案 0 :(得分:2)
在成功登录后检查经过身份验证的用户具有哪些角色。将以下行添加到HomeController中的Action方法中。例如:
public void CheckRoles()
{
foreach (var role in Roles.GetRolesForUser())
{
Response.Write(role + "<br/>");
}
}
答案 1 :(得分:0)
您使用的授权过滤器看起来是正确的。你检查了角色的拼写吗?也许角色是“教师”而不是“教师”或类似的东西。为安全起见,请确保角色名称的大小写相同。
答案 2 :(得分:0)
一个良好的开端是弄清楚您的用户是什么类型的Prinicipal。
在您的控制器中,将以下内容和断点放在该行上。
var user = User;
用户将为您提供当前主体并在调试器中查看它。当我遇到这样的情况时,这是因为我可能启用了表单身份验证并且启用了Windows角色管理器。
了解校长会很快帮助您解决问题。
答案 3 :(得分:0)