ASP.NET二级域名站点共享Session状态
ASP.NET二级域名站点共享Session状态
2010-01-15 10:44
我的前面一篇文章提到了如何在使用了ASP.NET form authentication的二级站点之间共享登陆状态,
http://www.cnblogs.com/jzywh/archive/2007/09/23/902905.html,
今天, 我要写的是如何在二级域名站点之间,主站点和二级域名站点之间共享Session。
首先, Session要共享,站点之间SessionID必须要一致,那怎么保证SessionID一致呢?
ASP.NET
中的SessionID是存储在客户端的cookie之中键值为ASP.NET_SessionId用来维护浏览者Session对应关系的一个字符串,
要想在二级域名站点之间,主站点和二级域名站点共享SessionID就必须先共享,那么我们就必须先实现ASP.NET_SessionId这一
cookie的共享。
CrossDomainCookieModule
------------------------------------------------------------------------------------------------
public class CrossDomainCookie : IHttpModule
{
private string m_RootDomain = string.Empty;
#region IHttpModule Members
public void Dispose()
{
}
public void Init(HttpApplication context)
{
m_RootDomain = ConfigurationManager.AppSettings["RootDomain"];
context.EndRequest += new System.EventHandler(context_EndRequest);
}
void context_EndRequest(object sender, System.EventArgs e)
{
HttpApplication app = sender as HttpApplication;
for (int i = 0; i < app.Context.Response.Cookies.Count; i++)
{
app.Context.Response.Cookies[i].Domain = m_RootDomain;
}
}
#endregion
}
上
面的Module重设了所有cookie的domain到root domain, root
domain在web.config中设置。也许有人会说这是眉毛胡子一把抓重写了所有cookie的domain,
那他也可以判断一下cookie的name, 如果为ASP.NET_SessionId的话才重写。
如果主站点和二级域名站点是同一站点,那么做到这一步,你的session就已经共享了,因为Session的ID是相同的,而且Session容器也是同一个。
如果主站点和二级域名站点是两个不同站点,则需要进行更多的操作了。
如果两个站点是不同的服务器的话,解决方法要简单点:
1) 使用相同的state server来
相关文档:
1. JS中取得Asp.Net的值
(1)取得服务端控件的值
var s = document.getElementById("TextBox1").value; //取得TextBox1的Text值
(2)取得全局变量的值
在Page_Load()方法前定义protected String sT;
在Page_Load()方法中赋值sT = "哈哈";
JS中这样写取得
var s = "<%=sT %>";
-------------------- ......
最近在学校里面,老师让我们做一个类似于社区型的博客网站,就像百度空间那种的,感觉不是很复杂,关键是样式要做得好看,换肤的功能让我很纠结,吴Sir给我们的建议是把那些功能都做成用户控件,然后要用的时候,直接拖进来就行了,可以做两套完全完全不同风格的网页,在我们目前DIV+CSS水平相当菜的情况下,这 ......
Abs(number) 取得数值的绝对值。
Asc(String) 取得字符串表达式的第一个字符ASCII 码。
Atn(number) 取得一个角度的反正切值。
CallByName (object, procname, usecalltype,[args()]) 执行一个对象的方法、设定或传回对象的属性。
CBool(expression) 转换表达式为Boolean 型态。
CByte(expression) 转换表达式为B ......
Asp.net DataList嵌套DataList的实现
[ 2006-05-31 01:26:24 | 作者: Admin ]
字体大小: 大 | 中 | 小
数据服务控件的嵌套最主要的是是内层控件数据的加载和事件的触发。 DataList嵌套的重点是要在外层DataList的ItemDataBound事件中用e.Item.FindControl方法来找到嵌套层DataList的id,编写嵌套层DataList的绑定数据 ......