ASP.NET MVC4已登录但仍需要登录

时间:2012-10-28 14:29:53

标签: asp.net-mvc asp.net-mvc-4

我是ASP.NET的新手,我遇到了一个奇怪的问题。

我已成功登录(我的登录部分视图在User.Identity.Name为真时使用Request.isAuthenticated显示我的用户名),然而,当我尝试访问受{{1保护的控制器时(我是作为老师登录的),他几乎总是将我重定向到登录页面。所以我登录并且我可以访问该网页,但如果我在登录后仍然需要刷新30秒才知道我的用户名仍在打印,而且我似乎仍然记录了。

有什么想法吗?

4 个答案:

答案 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)

老师登录了吗? 老师是角色吗? 这个登录用户是否存在于webpages_UsersInRoles表中的适当记录?