多租户成员资格提供程序ASP.NET MVC

时间:2010-05-20 14:17:15

标签: asp.net asp.net-membership membership-provider multi-tenant

我正在使用ASP.NET MVC构建一个多租户应用,并且在验证用户方面存在问题。

场合

我有:

- 包含用户的表(ID,名称,名字,电子邮件)   制作此表,以便在两个租户中注册的用户无需再次登录。

-a表与Tentantuser(ID,TenantID,UserID(FK到表用户),UserName,Loginname,Password,Active)   此表包含一个租户的登录密码。

示例:

  • UserX在TenantA和TenantB
  • 注册
  • UserX使用TenantA的登录名和密码
  • 登录TenantA
  • 系统验证或登录密码在表TenantUser
  • 中是否正确
  • 系统验证UserX哪个userID对应于表User
  • 中的Id
  • UserX转到TenantB并自动登录

我的问题:

如何创建自定义提供商,以便我可以查看登录信息和租客的密码? 例如:

public abstract bool ValidateUser(string username,string password);

如何向我的提供商说明用户是哪个租户?

我怎样才能改变这种情况:

 public overrides bool ValidateUser(string username,string password, string tenant); ?

或者解决这个问题的另一种方法是什么?

1 个答案:

答案 0 :(得分:5)

应用程序名称参数可用于标识租户a / b,可在配置文件中指定。然后,在您的自定义提供程序中,您可以使用此选项为租户提取正确的条目。不要设置自定义方法;这将是一种痛苦。

HTH。