C# 如何在自定义成员资格提供程序中保存ASP.NET_会话ID

C# 如何在自定义成员资格提供程序中保存ASP.NET_会话ID,c#,asp.net,session,membership,C#,Asp.net,Session,Membership,我为我的网站使用自定义成员资格提供程序。并使用此代码登录: private User SetupFormsAuthTicket(string userName, bool persistanceFlag) { User user; UsersContext usersContext = new UsersContext(); user = usersContext.GetUser(userName); var us

我为我的网站使用自定义成员资格提供程序。并使用此代码登录:

private User SetupFormsAuthTicket(string userName, bool persistanceFlag)
    {
        User user;
        UsersContext usersContext = new UsersContext();
            user = usersContext.GetUser(userName);

        var userId = user.UserId;
        var userData = userId.ToString(CultureInfo.InvariantCulture);
        var authTicket = new FormsAuthenticationTicket(1, //version
                            userName, // user name
                            DateTime.Now,             //creation
                            DateTime.Now.AddMinutes(30), //Expiration
                            persistanceFlag, //Persistent
                            userData);

        var encTicket = FormsAuthentication.Encrypt(authTicket);
        Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));
        return user;
    }
但我在浏览器中检查cookie,只是保存了ASPXAUTH,而没有保存ASP.NET_SessionId


我想保存ASP.NET_SessionId,但persistanceFlag为true。

如果要持久化身份验证票证,需要显式将cookie Expires设置为与身份验证票证过期相同

....

var encTicket = FormsAuthentication.Encrypt(authTicket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);

if (authTicket.IsPersistent)
{
    cookie.Expires = authTicket.Expiration;
}

Response.Cookies.Add(cookie);