0

我正在尝试在我的系统中设置访问角色。我有这两个角色;管理员和用户。在我的登录页面中,我输入了这行代码:

        if (Roles.IsUserInRole(Login1.UserName, "Administrator"))
            Response.Redirect("~/4_Admin/Page1.aspx");
        else if (Roles.IsUserInRole(Login1.UserName, "Users"))
            Response.Redirect("~/3_User/Expense.aspx");

当用户角色登录时,他们被定向到正确的页面,但对于管理员,它给了我这个错误,

无法找到该资源。说明:HTTP 404。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下 URL 并确保其拼写正确。请求的 URL:/Self_studies/login.aspx

 <membership>
    <providers>
      <clear/>
      <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="Connection" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" applicationName="SampleApplication"/>
    </providers>
  </membership>
  <profile>
    <providers>
      <clear/>
      <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="Connection" applicationName="SampleApplication"/>
    </providers>
  </profile>
  <roleManager enabled="true">
    <providers>
      <clear />
      <add connectionStringName="Connection" applicationName="SampleApplication"
        name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" />
    </providers>
  </roleManager>
    <compilation debug="false">

      <assemblies>
        <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
      </assemblies>

    </compilation>
    <!--
        The <authentication> section enables configuration 
        of the security authentication mode used by 
        ASP.NET to identify an incoming user. 
    -->
    <authentication mode="Forms" />

我想我已经检查了这个名字,并且多次检查了所有的编码。我能做些什么来解决这个问题吗?谢谢你。

4

1 回答 1

0

参考这个 -检查 ASP.NET 的成员资格、角色和配置文件
尝试将您的角色管理器配置为:

<roleManager enabled="true"
                 defaultProvider="CustomizedRoleProvider">
      <providers>
         <add name="CustomizedRoleProvider"
              type="System.Web.Security.SqlRoleProvider"
              connectionStringName="MyDB"
              applicationName="/" />
      </providers>
    </roleManager>

并在登录按钮检查用户角色为:参考:当前用户的验证

 if (HttpContext.Current.User.IsInRole("Administrators"))
        Response.Redirect("~/PageA.aspx");
    else
        Response.Redirect("~/PageB.aspx");
于 2012-03-19T05:23:08.433 回答