5

Ich benutze ASP.Net Identity 2, aber hoffe bald, zu Identity 3 zu wechseln, wenn es stabiler wird (jeder weiß, wann das sein könnte?). Hier ist ein Beispiel von meinem Code:Wie kann die Identity.GetUserId() gemacht werden, um eine Guid anstelle einer Zeichenfolge zurückzugeben?

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

Die Inhaltstabelle speichert ModifedBy als UNIQUE und das Content-Objekt ein Datentyp von Guid zuordnet

ModifiedBy Wenn ich die Signatur für GetUserID aussehen() es gibt Zeichenfolge.

Also, wie kann ich die Benutzer UserId nehmen und es in die ModifiedBy, die ein Guid ist?

+0

Dies liegt daran, dass UserId nicht nur eine GUID sein kann. Sie müssen sich also selbst konvertieren, wenn Sie sicher sind, dass Sie nur GUIDs verwenden. Identity V3 ist für ASP.NET 5 gedacht, also erwarten Sie, dass v3 zur gleichen Zeit wie das neue ASP.NET veröffentlicht wird. – trailmax

Antwort

7

eine GUID kann als Konstruktor

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

+3

Ich würde mit diesem Ansatz gehen. Es gibt eine generische Version 'GetUserId ', aber darunter verwendet 'Convert.ChangeType', was das Argument Wert benötigt, um' IConvertible' zu ​​implementieren, was 'Guid' nicht tut. – MotoSV

3

Sie verwenden Guid.Parse() oder Guid.TryParse()

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

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

Wie ich gleiche Verfahren wurde mit über und über Ich habe die folgende Erweiterung:

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

und dann habe ich diese verwendet:

User.Identity.GetUserId().ToGuid() 
Verwandte Themen