怎样实现asp和asp.net session共享
来源:百度知道 编辑:UC知道 时间:2024/07/09 07:34:25
别从网上找好不好?
Session共享的解决方案
1、客户端SessionID值唯一;
对于不同的域名:主域名、子域名、跨站点域名或跨服务器域名,用户在打开页面时会产生不同的SessionID,
为了使这些站点在用户登录时只登录一次,那我们就要解决SessionID的问题,必须使SessionID在这些共享Session的站点中只产生一次。而SessionID是存储在客户端的cookie之中键值为ASP.NET_SessionId的一个字符串(也可以存储在URL中,这里不作使介绍),为此只须使各站点存储的SP.NET_SessionId唯一即可。
因每个客户端在打开时会产生一个SessionID,为此我们要做的就是重置SessionID。我们可以在继承HttpModule,在结束请求时重写SessionID
代码:
public class MakeSessionIDOneOnly : IHttpModule
{
private string m_RootDomain = string.Empty;
public void Dispose()
{
}
public void Init(HttpApplication context)
{
m_RootDomain = ConfigurationManager.AppSettings["RootDomain"];
Type stateServerSessionProvider = typeof(HttpSessionState).Assembly.GetType("System.Web.SessionState.OutOfProcSessionStateStore");
FieldInfo uriField = stateServer