To pytanie jest trochę strukturalnym/projektowym pytaniem, ponieważ mam problem z wypracowaniem najlepszego sposobu wykonania tego zadania.Przechowywanie informacji DotNetOpenAuth i pobieranie informacji użytkownika
W mojej aplikacji MVC używam DotNetOpenAuth (3.4) jako mojego informatora login i tylko przy użyciu standardowego FormsAuthentication
dla ciasteczek itp
Aktualna tabela użytkownika w DB:
- Identyfikator użytkownika (PK, uniqueidentifier)
- OpenIdIdentifier (nvarchar (255))
- OpenIdDisplay (nvarchar (255))
- dISPLAYNAME (nvarchar (50)),
- Email (nvarchar (50))
- PhoneNumber (nvarchar (50))
Jak UserId jest jasne, identyfikator użytkownika (powinny one mieć możliwość zmiany dostawcy OpenID w późniejszym terminie), jest to klucz, do którego prowadzą inne tabele (dla użytkownika).
To jest bieżący kod, który po pomyślnym uwierzytelnieniu tworzy tymczasowego użytkownika i przekierowuje do Utwórz działanie.
switch (response.Status)
{
case AuthenticationStatus.Authenticated:
FormsAuthentication.SetAuthCookie(response.ClaimedIdentifier, false);
var users = new UserRepository();
if (!users.IsOpenIdAssociated(response.ClaimedIdentifier))
{
var newUser = new DueDate.Models.User();
newUser.OpenIdIdentifer = response.ClaimedIdentifier;
newUser.OpenIdDisplay = response.FriendlyIdentifierForDisplay;
TempData["newUser"] = newUser;
return this.RedirectToAction("Create");
}
A teraz do sedna pytania:
Czy
response.ClaimedIdentifier
poprawna informacja do przechowywania przed użytkownikiem?Czy preferowanym sposobem uwierzytelniania formularzy jest
FormAuthentication.SetAuthCookie
? Czy jest jakiś lepszy sposób?Kiedy dzwonię do SetAuthCookie, nie ma danych dotyczących użytkownika z wyjątkiem
ClaimedIdentifier
. Jeśli konsekwentnie odwołuję się do ichUserId
, lepiej jest utworzyć użytkownika, a następnie zapisać ten plik cookie w pliku cookie zamiast ?Jeśli używam tego identyfikatora użytkownika w wielu miejscach, w jaki sposób mogę go pobrać z pliku cookie lub zapisać w innym miejscu bardziej logicznym/użytecznym?
trochę długo zdyszany, ale ja już kłopoty stara się wypracować najlepszy sposób to zrobić/
Dziękuję bardzo, wielki odpowiedź i znacznie docenione :) –