1. 程式人生 > >自定義 Asp.Net SessionID 獲取方式

自定義 Asp.Net SessionID 獲取方式

manager esp manage 自定義 virtual col var == quest

新建類 CustomSessionIDManager

    public class CustomSessionIDManager : SessionIDManager, ISessionIDManager
    {
        private SessionStateSection pConfig = null;
        string ISessionIDManager.GetSessionID(HttpContext context)
        {
            if (pConfig == null)
            {
                Configuration cfg 
= WebConfigurationManager.OpenWebConfiguration(System.Web.Hosting.HostingEnvironment.ApplicationVirtualPath); pConfig = (SessionStateSection)cfg.GetSection("system.web/sessionState"); } string sid = base.GetSessionID(context);//默認從Cookie、UseUri 中獲取
if (string.IsNullOrWhiteSpace(sid) && !string.IsNullOrWhiteSpace(context.Request.QueryString[pConfig.CookieName])) { var _sid = context.Request.QueryString[pConfig.CookieName];//從自定義查詢字符中獲取,也可以擴展從自定義Header中獲取 return
sid; } return sid; } }

修改Web.Config

  <system.web>    
    <sessionState cookieName="_sid" sessionIDManagerType="命名空間.CustomSessionIDManager" />

自定義 Asp.Net SessionID 獲取方式