【问题标题】:Allow asp.net sqlmembership users to create "subusers"允许 asp.net sqlmembership 用户创建“子用户”
【发布时间】:2014-02-10 18:38:39
【问题描述】:

我已经尝试搜索了几天,但似乎找不到合适的答案,所以我会在这里问。

我正在建立一个 asp.net 会员网站。

我想做的是:

允许用户创建帐户 - 比如说 UserA 然后我想允许 UserA 创建绑定到他的帐户的“子帐户”,但具有不同的角色以及不同的登录名(我将使用电子邮件地址作为登录名)

UserA 将是各种帐户管理员。 UserA 的子帐户将比 UserA 更少“管理”,但他们写入我的数据库(实体框架)的任何数据仍将绑定到主 UserA 帐户,该帐户将通过 Membership.GetUser() API 调用引用到我的表。

所以 2 个问题:

1) 我将如何使用 DB First 引用我的 EntityDataModel 中的成员表(我已经运行了 aspnet_regsql.exe)

2) 我需要如何让 UserA 创建他自己的子用户?

这是我的自定义表格的图片:

[MasterAccountUser]
MasterAccountId = aspnet_Membership.UserId
AccountNumber = autoincrement number

[UserAccount] - subaccount of [MasterUserAccount]
AccountId = aspnet_Membership.UserId (if I have to have  each user create their own)
MasterAccountId = aspnet_Membership.UserId (but the same one as the [MasterAccountUser]

如果这太模糊,请告诉我,我可以扩展。

【问题讨论】:

  • ASP.NET 成员资格是为特定的域实体架构设计的 - 您提出的内容不适用于现有框架。我建议你完全自己实现这个系统,不要使用 Membership 层。
  • 当然我应该能够在我自己的自定义数据库表中做某种“鉴别器”,这样任何发布更新/编辑的用户仍然只适用于同一个帐户,对吧?因此,我只需要允许每个用户都有自己的登录,但是任何帐户更新仍然适用于相同的 MasterAccountId?

标签: asp.net entity-framework sqlmembershipprovider


【解决方案1】:

我能够让它工作。

基本上,您只需执行具有所有就地安全功能的标准 aspnetdb.mdf。 然后你只需添加一个具有相同字段的表,然后引用

MembershipUser.GetUser(Page.User.Identity.Name);

因此,您拥有的表将有一个带有此 User.ProviderKey 的“masteruser”。然后,每个“子用户”的记录中都有相同的主用户 guid,因此他们都属于同一个帐户。

如果有人想详细了解我是如何做到这一点的,我很乐意提供给他们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多