【发布时间】:2010-11-16 17:14:01
【问题描述】:
ASP.NET 是否公开了它用来生成会话 ID 的底层函数?我想生成一个用于 Web 服务的会话令牌,但它不会放在 Set-Cookie 标头中。如果 ASP.NET 已经有一个我可以用来生成会话 ID 的函数,这将使我不必自己动手。
【问题讨论】:
ASP.NET 是否公开了它用来生成会话 ID 的底层函数?我想生成一个用于 Web 服务的会话令牌,但它不会放在 Set-Cookie 标头中。如果 ASP.NET 已经有一个我可以用来生成会话 ID 的函数,这将使我不必自己动手。
【问题讨论】:
Reflector是你的朋友:
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);
}
【讨论】:
你不能System.Guid.NewGuid().ToString()吗?
【讨论】:
我不确定 ASP.Net 在后台使用了什么,但您应该能够使用 System.Guid.NewGuid().ToString() 来得出一个独特的值。
【讨论】: