-2
我在我的应用程序使用两个成员资格提供,在用户名和密码的用户密钥,它应该检查在第一成员提供的用户名,如果不是在第一个供应商,那么只有在搜索的用户名第二成员提供者。但问题是,每次搜索第二个成员提供商时,配置文件和角色提供商仍然是第一个提供商。我在代码中做错了什么? 下面是我的代码:不能获得简介和作用其次成员资格提供
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
MembershipProvider ProviderName = Membership.Providers["MySqlMembershipProvider2"];
if (Membership.ValidateUser(Login1.UserName, Login1.Password) == true)
{
e.Authenticated = true;
Login1.DestinationPageUrl = "~/Start.aspx";
}
else
{
if (Membership.Providers["MySqlMembershipProvider2"].ValidateUser(Login1.UserName, Login1.Password) == true)
{
RoleProvider RoleName= Roles.Providers["MySqlRoleProvider2"];
ProviderName.GetUser(Login1.UserName,true);
e.Authenticated = true;
Login1.DestinationPageUrl = "~/CL/CLLogin.aspx";
}
else
{
e.Authenticated = false;
}
}
}
的web.config:
<roleManager defaultProvider="MySQLRoleProvider" enabled="true">
<providers>
<clear/>
<add name="MySQLRoleProvider" connectionStringName="MySQLMembershipConnection" applicationName="/" type="MySql.Web.Security.MySQLRoleProvider" autogenerateschema="true"/>
<add name="MySQLRoleProvider2" connectionStringName="MySQLMembershipConnection2" applicationName="/" type="MySql.Web.Security.MySQLRoleProvider" autogenerateschema="true"/>
</providers>
</roleManager>
<anonymousIdentification enabled="true"/>
<membership defaultProvider="MySQLMembershipProvider">
<providers>
<clear/>
<add name="MySQLMembershipProvider" type="MySql.Web.Security.MySQLMembershipProvider" connectionStringName="MySQLMembershipConnection" autogenerateschema="true" applicationName="/" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"/>
<add name="MySQLMembershipProvider2" type="MySql.Web.Security.MySQLMembershipProvider" connectionStringName="MySQLMembershipConnection2" autogenerateschema="true" applicationName="/" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"/>
</providers>
</membership>
<profile defaultProvider="MySQLProfileProvider">
<providers>
<clear/>
<add name="MySQLProfileProvider" type="MySql.Web.Profile.MySqlProfileProvider" applicationName="/" connectionStringName="MySQLMembershipConnection" autogenerateschema="true"/>
<add name="MySQLProfileProvider2" type="MySql.Web.Profile.MySqlProfileProvider" applicationName="/" connectionStringName="MySQLMembershipConnection2" autogenerateschema="true"/>
</providers>
<properties>
<add name="FullName" provider="MySQLProfileProvider"/>
<add name="FName" provider="MySQLProfileProvider"/>
<add name="ClassName" provider="MySQLProfileProvider2"/>
<add name="Area" provider="MySQLProfileProvider2"/>
</properties>
</profile>
<sessionState>
<providers>
<add name="MySqlSessionStateStore" type="MySql.Web.SessionState.MySqlSessionStateStore,MySql.Web"/>
<add name="MySqlSessionStateStore2" type="MySql.Web.SessionState.MySqlSessionStateStore,MySql.Web"/>
</providers>
</sessionState>
我以前见过这个解决方案,但我在第一个和第二个角色提供者中有很多角色。我不知道如何将这个解决方案应用于我的情况。 –
将角色加载为逗号分隔值。所以当你需要它时你就拥有它。 – Mostafa
我试过上面的解决方案,但仍然无法正常工作。除此之外,我还能做什么? –