2012-03-19 67 views
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"); 

当用户角色登录,他们将被定向到正确的页面,但为admin,它给了我这个错误,

资源无法找到。 描述: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" /> 

我想我已经检查了名,并透过所有编码了这么多次去了。有什么我可以做的,以解决这个问题?谢谢。

+1

你有所有的页面你在这里参考? – PraveenVenu 2012-03-19 04:11:22

+0

Yeap。我做。双重检查它。但仍然是相同的错误 – 2012-03-19 04:12:11

+0

您是否尝试过使用浏览器开发工具之一浏览代码,以查看其重定向到哪个页面或使用浏览器开发工具监视浏览器中的网络流量? – 2012-03-19 04:14:04

回答

0

参考这个 - 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"); 
+0

还是不行。无法找到该资源。我不明白为什么不能找到。 – 2012-03-19 05:33:07

+0

你运行管理网站来配置成员资格数据库???检查部分.. – 2012-03-19 05:39:02

+0

是的。之前完成。 – 2012-03-19 05:44:29