我在默认的ASP.net成员资格中使用SQL server2012数据库。我在aspnet_applications表中有应用程序。
让 A 和 B
从Web项目中的一个应用程序我正在为第二个Application.which创建用户,它将存储在aspnet_users表中
让我从应用 A 来自网络我正在为应用 B
创建用户使用以下代码
Membership.ApplicationName = "B";
MembershipUser user = Membership.CreateUser(username, Membership.GeneratePassword(7, 2), email);
在创建这个新用户之后,我无法访问当前应用程序(应用程序A),直到我重新启动项目。
那么这里有什么问题?
如何将用户添加到其他应用程序?
由于
答案 0 :(得分:1)
Membership.ApplicationName = "B";
表示您在运行时切换应用程序名称。
实际上,您希望按名称呼叫提供商。然后使用提供程序创建用户。
MembershipProvider membershipProvider =
Membership.Providers["BMembershipProvider"];
Guid userId = Guid.NewGuid();
MembershipCreateStatus status;
membershipProvider.CreateUser("johndoe", "password",
"johndoe@email.com", "question", "answer", true, userId, out status);
if (status == MembershipCreateStatus.Success)
{
MembershipUser user = membershipProvider.GetUser(userId, false);
// Optional - assign the user to roles
RoleProvider roleProvider = Roles.Providers["SiteBRoleProvider"];
roleProvider.AddUsersToRoles(new[] {user.UserName}, new[] {"Admin"});
}
确保您在 web.config
中同时拥有两个会员提供商<membership defaultProvider="AMembershipProvider">
<providers>
<add name="AMembershipProvider"
type="System.Web.Providers.DefaultMembershipProvider ..."
connectionStringName="DefaultConnection" ... />
<add name="BMembershipProvider"
type="System.Web.Providers.DefaultMembershipProvider ..."
connectionStringName="DefaultConnection" ... />
</providers>
</membership>