5

Sto usando ASP.Net Identity 2 ma presto spero di cambiare in Identity 3 quando diventa più stabile (qualcuno sa quando potrebbe essere?). Ecco un esempio del mio codice:Come si può fare Identity.GetUserId() per restituire un Guid invece di una stringa?

content.ModifiedBy = User.Identity.GetUserId(); 

I tabella contiene contenuti ModifedBy come UNIQUEIDENTIFIER e l'oggetto Content assegna un tipo di dati Guid a ModifiedBy

Quando guardo la firma per GetUserID() restituisce un stringa.

Quindi, come posso portare gli utenti UserId e inserirli in ModifiedBy che è un Guid?

+0

Questo perché UserId può essere non solo un guid, quindi è necessario convertirsi se si è sicuri di utilizzare solo i guids. Identity V3 è per ASP.NET 5, quindi aspettatevi che v3 sia rilasciato allo stesso tempo del nuovo ASP.NET. – trailmax

risposta

7

Un guid può prendere una stringa come costruttore

content.ModifiedBy = new Guid (User.Identity.GetUserId());

+3

Vorrei andare con questo approccio. Esiste una versione generica 'GetUserId ', ma al di sotto utilizza 'Convert.ChangeType' che richiede l'argomento value per implementare' IConvertible' che 'Guid' non ha. – MotoSV

3

È possibile utilizzare Guid.Parse() o Guid.TryParse()

content.ModifiedBy = Guid.Parse(User.Identity.GetUserId()); 

https://msdn.microsoft.com/en-us/library/system.guid.parse%28v=vs.110%29.aspx

Mentre stavo usando lo stesso metodo più e più volte ho aggiunto la seguente estensione:

public static class ExtensionMethods 
{ 
    public static Guid ToGuid(this string value) 
    { 
     Guid result= Guid.Empty; 
     Guid.TryParse(value, out result); 
     return result;   
    } 
} 

e quindi ho usato questo:

User.Identity.GetUserId().ToGuid() 
Problemi correlati