【问题标题】:ASP.NET Role Provider not workingASP.NET 角色提供程序不起作用
【发布时间】:2016-08-02 07:26:25
【问题描述】:

所以我基本上是在开发一个遗留应用程序。我有一个有效的登录页面,并在登录时根据用户角色重定向......到目前为止一切都很好。但是当用户点击他们被重定向到的页面时,IsInRole 方法什么也没有出现,并将他们重定向到登录页面。

在我的登录页面上:

if (Membership.ValidateUser(nameTest, passwordLogIn.Text))
{
    if (Roles.IsUserInRole(nameTest, "Admin"))
        Response.Redirect("/admin.aspx");
    else if (Roles.IsUserInRole(nameTest, "Manager"))
        Response.Redirect("/admin.aspx");
    else if (Roles.IsUserInRole(nameTest, "User"))
        Response.Redirect("/mydonations.aspx");
}

效果很好……

在管理页面中我有:

if (!(User.IsInRole("Admin") || (User.IsInRole("Manager"))))
{
   Response.Redirect("/Default.aspx");
}

失败了...如果有人能发现正在发生的事情,我将不胜感激。我(不用说)看不出问题,更可气的是其他成功运营项目的 sn-ps。

【问题讨论】:

  • 能否在 web.config 中显示 membershiproleManager 标签?
  • @Win 这就是我得到的:
  • @Win 和这个: 感谢您的宝贵时间!
  • 查看 Intellitrace 我看到:抛出了 System.Security.Security 异常 不允许请求注册表访问”不用说,我现在完全糊涂了,如果它抛出异常,它会默默地这样做:S

标签: c# asp.net webforms


【解决方案1】:

由于 MemhershipProviderSqlMembershipProvider,您想使用 SqlRoleProvider 用于 RoleProvider 而不是 WindowsTokenRoleProvider

<roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">
  <providers>
    <clear/>
      <add connectionStringName="ApplicationServices" 
        applicationName="/" 
        name="AspNetSqlRoleProvider" 
        type="System.Web.Security.SqlRoleProvider, System.Web"/>
  </providers>
</roleManager>

【讨论】:

  • 非常感谢您的帮助...我认为可能有错字?我试过: 并且有同样的问题......还有其他想法吗?再次感谢!非常感谢!
  • 查看 Intellitrace 我看到:抛出了 System.Security.Security 异常 不允许请求注册表访问”不用说,我现在完全糊涂了,如果它抛出异常,它会默默地这样做或者这可能是一个红鲱鱼。
猜你喜欢
  • 1970-01-01
  • 2014-10-15
  • 1970-01-01
  • 2011-01-01
  • 1970-01-01
  • 2016-04-23
  • 1970-01-01
  • 2017-04-28
  • 2011-04-18
相关资源
最近更新 更多