允许asp.net sqlmembership用户创建“子用户”

时间:2013-08-09 19:09:15

标签: asp.net entity-framework sqlmembershipprovider

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

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

我想做的是:

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

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

所以有2个问题:

1)我如何使用DB First引用我的EntityDataModel中的Membership表(我已经运行了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]

enter image description here

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

1 个答案:

答案 0 :(得分:0)

我能够让它发挥作用。

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

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

因此,您自己的表将具有此User.ProviderKey的“masteruser”。然后,每个“子用户”在其记录上都有SAME主用户guid,以便它们都属于同一帐户。

如果有人想了解我如何使用它的更多细节,我很乐意提供它们。