Подтвердить что ты не робот

Как реализовать многопользовательский вход пользователя с использованием идентификатора ASP.NET

Я разрабатываю решение Multi-tenant, и я хочу использовать последнюю структуру ASP.NET Identity, в частности Entity Framework.

В принципе, мне нужно разрешить двум пользователям иметь одно и то же имя пользователя, хотя оно должно быть уникальным для арендатора, я также хотел бы использовать внешние входные данные, такие как Twitter, Microsoft, Facebook и Google.

Из того, что я могу сказать, структура не была разработана с учетом многопользовательского подхода, хотя это, по-видимому, позволяет расширяемость. Я предпочел бы использовать как можно больше существующих компонентов, хотя на данный момент мне кажется, что мне придется отказаться от реализации Entity Framework и кода все это сам.

Кто-нибудь еще пробовал это и сколько у них было, чтобы закодировать себя.

4b9b3361

Ответ 1

Теперь у меня есть рабочее решение, которое я поделил в репозитории GitHub:

https://github.com/JSkimming/AspNet.Identity.EntityFramework.Multitenant

Расширяемость, необходимая для поддержки многопользовательской аренды, не возможна с выпуском 1.0.0 Microsoft.AspNet.Identity.EntityFramework (по крайней мере, не без большого количества пользовательской работы), но доступен в версии 1.1 alpha, доступной в настоящее время через Ночные ASP.NET Web Stack NuGet Packages.

Я решил опубликовать то, что я выпустил в качестве пакета NuGet AspNet.Identity.EntityFramework.Multitenant, так как заявил, что в настоящее время он требует Ночные пакеты ASP.NET для веб-стека NuGet.

Я предоставил два простых сайта, которые используют этот пакет для многоуровневой работы:

  • Vanilla Implementation, который является стандартным проектом шаблона MVC5, который использует первичные ключи строки.
    • Изменения, необходимые для обеспечения многопользовательской аренды, были выделены для этого commit.
  • Целочисленная реализация первичного ключа, которая делает еще несколько настроек для использования целых первичных ключей
    • Изменения, необходимые для обеспечения многопользовательской аренды, были выделены для этого commit.

Я планирую обновить решение по мере выпуска версии 1.1 ASP.NET Identity.

Я надеюсь, что другие найдут применение в пакете nuget, который я выпустил, любая обратная связь более чем приветствуется и поднимает любые проблемы, которые вы найдете.


Update

Теперь решение обновлено для использования версии 2.0 Microsoft.AspNet.Identity.EntityFramework.

Ответ 2

Да, мы явно оставили это как сценарий расширяемости. Вы должны сделать это, переопределив свойства UserManager и внедряя свой собственный IUserStore. Хотя вы, возможно, также сможете расширить EFS UserStore, а также просто добавить tenantId для своего пользователя.