2015-03-30 17 views
10

W mojej aplikacji MVC-5 muszę tworzyć wartości znaczków bezpieczeństwa ręcznie. Obecna implementacja zespołu ds. Tożsamości wydaje się korzystać z GUID.Jak utworzyć wartość znaczka bezpieczeństwa dla tożsamości asp.net (IUserSecurityStampStore)

Guid.NewGuid().ToString("D") 

Czy to zaoszczędzić stworzyć sobie nowego identyfikatora GUID i użyć go jako nową wartość znaczka zabezpieczającego lub może to prowadzić do problemów w przyszłych wdrożeń tożsamości ASP.NET?
Czy istnieje metoda pozwalająca ramom tożsamości utworzyć dla mnie taką wartość pieczęci, aby moja implementacja została zachowana na przyszłe zmiany?

Aktualizacja
zmieniłem tekst quesion do opracowania bardziej dokładnie za to, co szukałem.

Odpowiedz

14

Z dokumentacji realizacji tożsamości dla podmiotu-ram, wydaje się, że może to być dowolna wartość losowa:

IdentityUser.SecurityStamp Property

GUID wydaje się więc dobrze i następujący kod powinien być niezawodny także z przyszłymi wersjami tożsamości asp.net.

Guid.NewGuid().ToString("D") 
7

ASP.NET Identity UserManager zapewnia metoda UpdateSecurityStampAsync(string userId) który automatycznie aktualizuje użytkownikom security-stamp. Aby następnym razem użytkownik zakończył, użytkownik zostanie automatycznie wylogowany i zmuszony do ponownego zalogowania się.

UserManager.UpdateSecurityStampAsync(userId); 
+0

To nie jest odpowiedź na moje pytanie. Szukałem przyszłościowego sposobu na ręczne tworzenie wartości znacznika (nie ustawianie go). Na szczęście znalazłem w dokumentach asp.identiy Entity-Framework -implementation notkę, którą zrobi dowolna losowa wartość. Proszę zobaczyć moją odpowiedź. Dzięki i tak. – HCL

+0

Możesz tu sprawdzić, że tożsamość wykorzystuje także Guid do tworzenia nowych pieczątek bezpieczeństwa, więc myślę, że nie ma problemu, aby stworzyć własne. https://github.com/aspnet/Identity/blob/dev/src/Microsoft.AspNet.Identity/UserManager.cs#L787 Tożsamość zapewnia tylko dwie metody 'UpdateSecurityStampAsync' oraz' GetSecurityStampAsync', więc będziesz musiał utworzyć własny ciąg znaków jeśli chcesz mieć kontrolę. –