Asp.net 成员身份角色提供程序无法使用自定义连接字符串?

Asp.net 成员身份角色提供程序无法使用自定义连接字符串?,asp.net,sql,membership,provider,Asp.net,Sql,Membership,Provider,请帮助解决一个问题。 我用IIS7配置了成员资格,它的表位于我自己的数据库中,用aspnet_regsql实用程序创建,我使用自定义连接字符串访问它 这是与成员资格相关的web.config的一部分: <connectionStrings> <add connectionString="Server=CORESERVER\SQLExpress;Database=Shop;User ID=Tema;Password=Matrix" name="CustomSqlConne

请帮助解决一个问题。 我用IIS7配置了成员资格,它的表位于我自己的数据库中,用aspnet_regsql实用程序创建,我使用自定义连接字符串访问它

这是与成员资格相关的web.config的一部分:

<connectionStrings>
    <add connectionString="Server=CORESERVER\SQLExpress;Database=Shop;User ID=Tema;Password=Matrix" name="CustomSqlConnection" />
</connectionStrings>
<profile enabled="true">
      <providers>
        <add name="CustomSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="CustomSqlConnection" />
      </providers>
</profile>
<roleManager defaultProvider="AspNetSqlRoleProvider" enabled="true">
      <providers>
        <add name="CustomSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="CustomSqlConnection" />
      </providers>
</roleManager>
<membership defaultProvider="CustomSqlMemberProvider">
      <providers>
        <add name="CustomSqlMemberProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="CustomSqlConnection" enablePasswordReset="true" enablePasswordRetrieval="false" passwordFormat="Hashed" requiresQuestionAndAnswer="true" requiresUniqueEmail="true" applicationName="/" maxInvalidPasswordAttempts="10" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" />
      </providers>
</membership>
<authentication mode="Forms">
      <forms cookieless="UseCookies" loginUrl="login.aspx" name="WebShopAuthentication" protection="All" timeout="30" path="/" requireSSL="false" defaultUrl="~/admin/default.aspx" />
</authentication>
<authorization>
      <allow users="*" />
</authorization>
为什么


我做错了什么?

只是为了完善。。。授权工作正常,并正确使用角色。my web.config的另一部分:

<location path="Admin">
    <system.web>
      <pages styleSheetTheme="Admin" theme="Admin">
      </pages>
      <authorization>
        <deny users="?" />
        <allow roles="Administrator" />
      </authorization>
    </system.web>
    <appSettings>
      <add key="ThemeName" value="Admin" />
    </appSettings>
</location>
<roleManager defaultProvider="CustomSqlRoleProvider" enabled="true">
      <providers>
        <add name="CustomSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="CustomSqlConnection" applicationName="/" />
      </providers>
    </roleManager>

答案是,我没有正确地将applicationName参数添加到web.config中-添加后,我应该重新启动IIS,如果需要,重新创建角色。 这是web.config的最终版本:

<location path="Admin">
    <system.web>
      <pages styleSheetTheme="Admin" theme="Admin">
      </pages>
      <authorization>
        <deny users="?" />
        <allow roles="Administrator" />
      </authorization>
    </system.web>
    <appSettings>
      <add key="ThemeName" value="Admin" />
    </appSettings>
</location>
<roleManager defaultProvider="CustomSqlRoleProvider" enabled="true">
      <providers>
        <add name="CustomSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="CustomSqlConnection" applicationName="/" />
      </providers>
    </roleManager>

很抱歉问了一个愚蠢的问题,但您是否确实创建了任何角色并将其分配给当前用户?实际上是的。有:1个具有指向my DB的重写连接字符串的提供程序,4个角色-管理员、客户、经理、用户,以及3个名为管理员、经理、客户的用户。