【问题标题】:Error in role redirection角色重定向错误
【发布时间】:2012-03-19 04:09:04
【问题描述】:

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

        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 并确保其拼写正确。 请求的网址:/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" />

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

【问题讨论】:

  • 这里有你引用的所有页面吗?
  • 是的。我愿意。仔细检查了它。但还是同样的错误
  • 您是否尝试过单步执行您的代码以查看它正在重定向到哪个页面或使用其中一种浏览器开发工具监控浏览器中的网络流量?
  • 您是从 IIS 还是 Visual Studio 开发服务器运行站点?您是否还尝试直接从浏览器调试或访问 URL?
  • 我从 vsd 运行并从系统调试它。

标签: c# asp.net role


【解决方案1】:

参考这个-Examining ASP.NET's Membership, Roles, and Profile
尝试将您的角色管理器配置为:

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

并在登录按钮检查用户角色为:参考:Validation on current user

 if (HttpContext.Current.User.IsInRole("Administrators"))
        Response.Redirect("~/PageA.aspx");
    else
        Response.Redirect("~/PageB.aspx");

【讨论】:

  • 还是不行。无法找到该资源。我不明白为什么找不到。
  • 你有没有运行管理网站来配置会员数据库???..检查部分..
猜你喜欢
  • 2017-12-15
  • 1970-01-01
  • 1970-01-01
  • 2011-11-18
  • 2016-11-28
  • 2015-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多