ASP.NET角色提供程序无法正常工作

时间:2016-08-01 22:27:39

标签: c# asp.net webforms

所以我基本上是一个遗留应用程序。我有一个可用的登录页面,并在登录时根据用户角色重定向...到目前为止一切顺利。但是当用户点击他们被重定向的页面时,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");
}

哪个失败了...如果有人能够发现正在发生的事情,我将非常感激。我(不用说)看不出问题,更令人恼火的是其他成功运营项目的片段。

1 个答案:

答案 0 :(得分:0)

由于 MemhershipProvider SqlMembershipProvider ,您要使用 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>