Я создаю мультитенантное приложение с ASP.NET MVC и у меня проблема с проверкой пользователей.
Положение
У меня есть:
- таблица с пользователем (идентификатор, имя, имя, электронная почта)
Эта таблица составлена так, чтобы пользователям, зарегистрированным в двух арендаторах, не нужно было снова входить в систему.
- таблица с Tentantuser (ID, TenantID, UserID (FK для таблицы User), имя пользователя, имя пользователя, пароль, активный)
Эта таблица содержит логин и пароль для одного арендатора.
Пример:
- Пользователь X зарегистрирован в TenantA и TenantB
- UserX входит в систему TenantA, используя свой логин и пароль для TenantA
- Система проверяет, или логин и пароль верны в таблице TenantUser
- Система проверяет UserX, идентификатор пользователя которого соответствует идентификатору в таблице User
- UserX переходит на TenantB и автоматически входит в систему
Моя проблема:
Как создать собственного провайдера, чтобы я мог проверить логин и пароль у арендатора?
Например:
public abstract bool ValidateUser(string username,string password);
Как я могу сказать своему провайдеру, на каком арендаторе находится пользователь?
Как я могу изменить это как-то так:
public overrides bool ValidateUser(string username,string password, string tenant); ?
Или как еще можно решить эту проблему?