【问题标题】:Function ASP.NET uses to generate Session ID?ASP.NET 用于生成会话 ID 的函数?
【发布时间】:2010-11-16 17:14:01
【问题描述】:

ASP.NET 是否公开了它用来生成会话 ID 的底层函数?我想生成一个用于 Web 服务的会话令牌,但它不会放在 Set-Cookie 标头中。如果 ASP.NET 已经有一个我可以用来生成会话 ID 的函数,这将使我不必自己动手。

【问题讨论】:

    标签: asp.net session sessionid


    【解决方案1】:

    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);
    }
    

    【讨论】:

    • 这类似于我将自己滚动它的方式......很高兴知道我离我不远了。
    【解决方案2】:

    你不能System.Guid.NewGuid().ToString()吗?

    【讨论】:

    • 据我了解,GUID 有利于唯一性,但它们作为安全令牌不好,因为它们的随机性不足以防止猜测。
    • 我想看看有人猜一个向导!!
    【解决方案3】:

    我不确定 ASP.Net 在后台使用了什么,但您应该能够使用 System.Guid.NewGuid().ToString() 来得出一个独特的值。

    【讨论】:

      猜你喜欢
      • 2015-05-07
      • 2018-07-31
      • 2012-11-03
      • 2011-12-29
      • 2012-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-27
      相关资源
      最近更新 更多