怎样实现asp和asp.net session共享

来源:百度知道 编辑:UC知道 时间:2024/07/09 07:34:25
谁有asp和asp.net session共享的好方法,不要微软的那个新建个数据库方法,最好有点创意的,我知道有个方法是通过隐藏框架传递的,但不是太清楚,不知道哪位大侠能给说说,最好带点代码,这样比较容易理解,或者哪位仁兄能给个更好的方法,你们想要多少分,只要我有,一定给,悬赏分只能选100分 就先给这么多了
别从网上找好不好?

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