代码之家  ›  专栏  ›  技术社区  ›  Anders

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

  •  0
  • Anders  · 技术社区  · 17 年前

    我刚刚把一个MVC应用程序上传到我的live服务器上。在执行此操作之前,在通过创建必要的表和存储过程以进行身份验证之后,我创建了一个用户(“anders”) aspnet_regsql VS2008命令提示符中的命令。我在本地成功测试了在访问此视图之前(或访问时)需要登录:

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

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

    新信息

    看起来有其他事情正在发生,但上面的信息可能仍然有用。显然我的用户是 不 在admin组中,尽管我查看了数据库并验证了 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 回复  |  直到 11 年前
        1
  •  1
  •   Ahmed Khalaf    17 年前

    你在使用缓存技术吗?这也许就是原因。

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

        2
  •  0
  •   ppvi ppvi    16 年前

    <roleManager enabled="true">
    ...
    

    在服务器的配置中设置为false,但在本地配置中未设置。