【问题标题】:Use different Membership Provider and Role Provider programmatically at runtime在运行时以编程方式使用不同的 Membership Provider 和 Role Provider
【发布时间】:2014-05-13 23:04:55
【问题描述】:

我正在使用具有默认 ASP.net 成员资格的 SQL server2012 数据库。我在 aspnet_applications 表中有 To Applications。

AB

从 Web 项目中的一个应用程序,我正在为第二个应用程序创建用户。它将存储在 aspnet_users 表中

让来自网络的应用程序 A 我正在为应用程序 B

创建用户

使用以下代码

Membership.ApplicationName = "B";
MembershipUser user = Membership.CreateUser(username, Membership.GeneratePassword(7, 2), email);

在创建这个新用户之后,我无法访问当前应用程序(应用程序 A),直到我重新启动项目。

那么这里的问题是什么?

如何将用户添加到另一个应用程序?

谢谢

【问题讨论】:

标签: asp.net asp.net-membership


【解决方案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>

【讨论】:

  • 非常感谢它对我有用....现在我对角色感到震惊,我得到了 Roles As Roles.ApplicationName = "B"; Roles.GetAllRoles().ToList();我也将角色中的用户保存为 Roles.ApplicationName = "B"; Roles.AddUserToRole(userName, roleName);那么我该如何实现这一点,因为在会员船提供者中没有任何角色方法
猜你喜欢
  • 2014-08-27
  • 2012-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-29
  • 2011-08-30
相关资源
最近更新 更多