Zobacz ten samouczek. To pokazuje, jak zaimplementować Tożsamość używając ASP.NET Web API:
http://bitoftech.net/2015/01/21/asp-net-identity-2-with-asp-net-web-api-2-accounts-management/
Co do czynienia z wieloma aplikacjami. Dwa podejścia, które przychodzą do głowy to:
- Dopisz się
AppId
do wszystkich nazw użytkowników
- Dodaj
AppId
kolumna do AspNetUsers
tabeli pochodzą z UserStore
i ponownie wdrożyć metody oparte na Find
tak zapytania uwzględniać AppId
dla # 1, gdy aplikacja chce stworzyć nowego użytkownika byłoby wysłać zapytanie do WebAPI zawierającego nowe informacje użytkownika i AppId
. WebApi następnie złączy UserName
i AppId
, aby utworzyć pełną nazwę użytkownika, która zostanie zapisana w bazie danych. Jeśli więc aplikacja 1234
chce utworzyć użytkownika o nazwie użytkownika myuser
, WebApi utworzy nowego użytkownika o nazwie użytkownika myuser_1234
. Od tego momentu podczas wysyłania zapytań do bazy danych najpierw należy pobrać z żądania UserName
i AppId
, połączyć je, a następnie wysłać zapytanie do bazy danych.
Jeśli inna aplikacja 9900
chce utworzyć myuser
, wówczas ostateczną nazwą użytkownika zapisaną w bazie danych będzie myuser_9900
.
Użytkownik może chcieć zapisać szczegóły aplikacji w bazie danych i dla każdego żądania zweryfikować numer AppId
, aby upewnić się, że rozpoznaje aplikację przed przetworzeniem żądania.
Nie myślałem dużo o kroku 2, więc jest to tylko sugestia.
Jeśli chcesz udostępnić dane uwierzytelniające użytkownika w wielu aplikacjach, możesz prawdopodobnie zignorować powyższe dane, korzystać ze standardowej funkcjonalności i po prostu mieć wszystkie aplikacje wskazywać na tę samą bazę danych, dzięki czemu wszystkie aplikacje będą miały dostęp do wszystkich użytkowników bez względu na aplikację. stworzyłem który użytkownik.
AKTUALIZACJA # 1: W tym przypadku można użyć żetonów okaziciela i myślę, że (wychodząc z pamięci) seria samouczków wspomniana powyżej dotyczy tego i jak pojedynczy WebApi może zapewnić tokeny dla wielu aplikacji.
Twoje role są stałe lub dynamiczne. Podobnie jak użytkownicy końcowi mogą zmieniać role w czasie wykonywania lub każda rola ma stałe uprawnienia na etapie projektowania. –