C# 会员资格提供商,允许使用相同的用户名和电子邮件

C# 会员资格提供商,允许使用相同的用户名和电子邮件,c#,web-applications,asp.net-membership,C#,Web Applications,Asp.net Membership,我知道标题令人困惑,但让我详细说明一下 我有一个应用程序,可以让你创建公司。 每个公司都有自己独特的子域,当您转到该url时,您可以仅为该公司注册并仅为该公司登录 我想要实现的是允许公司a的用户(可能)拥有与公司b相同的用户名和/或电子邮件地址 我在过去研究过这个问题,我认为它与应用程序Id有关。 我已经有了一个自定义的ProfileRepository,它比Membership.GetUser()方法能吸收更多的数据,所以是否有不同的应用程序ID对我来说并不重要 如果我可以创建一个用户并在Me

我知道标题令人困惑,但让我详细说明一下

我有一个应用程序,可以让你创建公司。 每个公司都有自己独特的子域,当您转到该url时,您可以仅为该公司注册并仅为该公司登录

我想要实现的是允许公司a的用户(可能)拥有与公司b相同的用户名和/或电子邮件地址

我在过去研究过这个问题,我认为它与应用程序Id有关。 我已经有了一个自定义的ProfileRepository,它比Membership.GetUser()方法能吸收更多的数据,所以是否有不同的应用程序ID对我来说并不重要

如果我可以创建一个用户并在Membership.CreateUser()方法中指定应用程序id,那么这将是一个理想的方法,如果不是,我需要解决方法

有人能帮忙吗

干杯,
定义提供者时,必须定义ASP成员资格应用程序中的r3plica。 然后你用

Membership.Providers["ProviderName"].CreateUser() 
为该应用程序创建用户

不幸的是,我认为没有一种方法可以动态创建应用程序,因此它们都需要在web配置中使用不同的应用程序名称来定义电子邮件:

web配置中有一个部分允许更多用户拥有相同的邮件



Id为、PersonId和CompanyId的PersonCompany映射表有什么问题。这是因为人与公司之间存在多对多关系。您可以在跨公司共享登录详细信息时对此进行检查。这并不能解决问题。我已经有了一个配置文件表,非常抱歉,那么我不理解你的问题。如果您有公司的视图/页面/区域,那么您可以访问公司id,在登录时将其与用户名和密码一起发送到服务器(在隐藏字段或其他地方),从唯一的用户名获取配置文件id,检查此人是否有权登录此公司(映射表)检查密码和电子邮件匹配,并允许/不允许他们登录。如果我不了解具体问题,请道歉。问题在于注册时。检查用户不是问题。但是,当我注册一个用户时,我希望能够为每个公司使用相同的用户名。是的,我知道电子邮件选项:)主要问题是用户名。我认为除了使用组合用户名并将其隐藏在登录页面之外,您没有其他选项
<providers>
    <add name="xxx" requiresUniqueEmail="false"