使用Authorize属性的ASP.NET MVC视图中的登录循环
使用Authorize属性的ASP.NET MVC视图中的登录循环
我刚刚将一个MVC应用程序上传到我的实际服务器上。在这之前,我在VS2008命令提示符中使用aspnet_regsql
命令创建了一个用户('anders'),并创建了必要的表格和存储过程以进行身份验证。我在本地成功测试了,在访问此视图之前(或同时访问)需要登录:
[Authorize(Roles = "admin")] public ViewResult Index() { return View(); }
我备份了本地数据库,并将其恢复到实际服务器上。在测试视图之前,我验证了我能够使用新创建的用户登录。然而,当我尝试登录后访问视图时,我被无限重定向到登录页面。
新信息
看起来还有其他问题,但上述信息可能仍然有用。显然,尽管我查看了数据库并验证了我的UserID
在dbo.aspnet_Roles
表中,并且RoleID
对应于admin角色,但我的用户不在admin组中。我通过更改主页面顶部欢迎登录用户的代码发现了这一点,并注意到它返回了false:
Welcome <%= Html.Encode(Page.User.Identity.Name) %>! (<%= Html.Encode(Page.User.IsInRole("admin")) %>)
我和新创建的'stackoverflow'用户都应该属于admin角色,但出于某种原因他们不是。
非常感谢您帮助追踪为什么我的用户没有被认为属于'admin'角色的原因。提前致谢!