5

我正在使用 ASP.NET MVC 构建一个多租户应用程序,并且在验证用户时遇到问题。

情况

我有:

- 一个带有 User(ID, Name, FirstName, Email) 的表,这个表是为了让一个在两个租户中注册的用户不需要再次登录。

- 一张带有 Tenantuser(ID, TenantID, UserID (FK to table User), UserName, Loginname, Password, Active) 的表 该表包含一个租户的登录密码。

例子:

  • UserX 在 TenantA 和 TenantB 中注册
  • UserX 使用 TenantA 的登录名和密码登录租户 A
  • 系统在 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); ?

或者还有什么方法可以解决这个问题?

4

1 回答 1

5

应用名称参数可以用来标识租户a/b,可以在配置文件中指定。然后,在您的自定义提供程序中,您可以使用它来为租户提取正确的条目。不要设置自定义方法;那会很痛苦。

HTH。

于 2010-05-20T14:57:09.047 回答