2009-08-04 3 views
4

Gibt ASP.NET die zugrunde liegende Funktion zum Generieren von Sitzungs-IDs frei? Ich möchte ein Sitzungstoken für die Verwendung in einem Webdienst generieren, es wird jedoch nicht in den Set-Cookie-Header eingefügt. Wenn ASP.NET bereits eine Funktion hat, die ich verwenden kann, um eine Sitzungs-ID zu generieren, kann ich mich dadurch nicht selbst rollen.Funktion ASP.NET verwendet, um Session ID zu generieren?

Antwort

5

Reflector ist dein Freund:

SessionIDManager.CreateSessionID()

internal static string Create(ref RandomNumberGenerator randgen) 
{ 
    if (randgen == null) 
    { 
     randgen = new RNGCryptoServiceProvider(); 
    } 
    byte[] data = new byte[15]; 
    randgen.GetBytes(data); 
    return Encode(data); 
} 
+0

Das war ähnlich wie ich es alleine rollen würde ... tröstlich zu wissen, dass ich nicht weit weg war. – DSO

1

Können Sie nicht System.Guid.NewGuid().ToString()?

+0

Wie ich es verstehe, für Einzigartigkeit GUIDs sind gut, aber sie sind als Sicherheitstoken schlecht, weil sie nicht zufällig genug sind, um zu verhindern, Raten. – DSO

+1

Ich würde gerne jemanden Guid Guid sehen !! –

0

Ich bin nicht sicher, was ASP.Net unter der Haube verwendet, aber Sie sollten in der Lage sein, System.Guid.NewGuid().ToString() zu verwenden, um mit einem einzigartigen Wert zu kommen.