Многопользовательский поставщик членства ASP.NET MVC - PullRequest
5 голосов
/ 20 мая 2010

Я создаю мультитенантное приложение с 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); ?

Или как еще можно решить эту проблему?

1 Ответ

5 голосов
/ 20 мая 2010

Параметр имени приложения можно использовать для идентификации арендатора a / b, который можно указать в файле конфигурации. Затем в своем пользовательском провайдере вы можете использовать это, чтобы получить правильную запись для арендатора. Не занимайтесь настройкой пользовательских методов; это было бы болью.

НТН.

...