我正在使用 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); ?
或者还有什么方法可以解决这个问题?