【问题标题】:Roles.GetRolesForUser(); returns blankRoles.GetRolesForUser();返回空白
【发布时间】:2011-05-27 16:34:41
【问题描述】:

当我调用 Roles.GetRolesForUser(); 时使用 asp.net 会员 api它什么也不返回。当我调用 Roles.GetAllRoles() 时,所有角色都会返回。问题是什么?另外,使用会员 api 对用户进行身份验证的正确方法是什么?

【问题讨论】:

  • 你在使用 applicationName weblogs.asp.net/scottgu/archive/2006/04/22/Always-set-the-2200_applicationName_2200-property-when-configuring-ASP.NET-2.0-Membership-and-other-Providers.aspx
  • 它应该返回一个空数组,而不是什么。你确定你使用的是正确的数据库吗?也许是错误的连接字符串?

标签: c# asp.net membership roles


【解决方案1】:

Roles.GetRolesForUser() 返回当前登录用户的角色。

1:确保在登录时执行它。

2:确保为用户分配了角色。

对于您关于最佳方式的问题,我不确定您在什么情况下问。但基本上,如果您使用的是内置的 ASP.NET 登录控件,则无需执行任何操作。如果您愿意,可以显式使用 Membership.ValidateUser 方法。需要注意的一件事是您确实需要在 web.config 中设置 FormsAuthentication。

【讨论】:

    【解决方案2】:

    您是否使用 IIS 托管并完成匿名身份验证?通常,任何安全提供商都会使用它找到的最简单的。

    它会以 Anonymous 开头,然后如果它被禁用,它会查找 Forms,然后是 Windows。

    Visual Studio 中内置的 cassini Web 服务器会为您执行此操作。

    【讨论】:

      【解决方案3】:

      需要在控制器中的cont前加上[InitializeSimpleMembership]

      【讨论】:

        猜你喜欢
        • 2017-04-11
        • 2018-12-23
        • 2017-11-20
        • 1970-01-01
        • 2012-09-06
        • 2018-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多