使用Authorize属性登录循环ASP.NET MVC视图

时间:2009-09-24 15:39:50

标签: asp.net-mvc authentication

我刚刚将MVC应用程序上传到我的实时服务器。在这之前,我通过VS2008命令提示符中的aspnet_regsql命令创建了必要的表和存储过程以创建用户('anders')。我在本地成功测试了我需要在访问此视图之前(或同时)登录:

[Authorize(Roles = "admin")]
public ViewResult Index()
{
    return View();
}

我备份了我的本地数据库,并将其恢复到我的实时服务器。在测试视图之前,我确认我可以使用新创建的用户登录。但是,当我在登录后尝试访问视图时,我会无限期地重定向到登录页面。

新信息

看起来正在发生其他事情,但上述信息可能仍然有用。显然,我的用户在管理员组中,即使我查看了数据库并确认我的UserID位于dbo.aspnet_Roles表中且RoleID对应与管理员角色。我通过更改主页顶部的代码来发现这一点,它欢迎登录用户,并注意到它返回false:

Welcome <b><%= Html.Encode(Page.User.Identity.Name) %></b>!
(<%= Html.Encode(Page.User.IsInRole("admin")) %>)

我的用户和新创建的'stackoverflow'(密码是passw0rd,供你们查看)用户应该是管理员角色,但由于某种原因他们不是。

任何有关追踪我的用户未被识别为“管理员”角色的原因的帮助将不胜感激。提前谢谢!

Link to my live server

2 个答案:

答案 0 :(得分:1)

您使用的是任何缓存技术吗?这也许是原因。

您还需要验证RoleProvider是否正常工作,但没有更多详细信息我无法提供更多帮助

答案 1 :(得分:0)

我遇到了同样的问题。在web.config中:

<roleManager enabled="true">
...

在服务器配置中设置为false,但不是本地配置。

相关问题