您的位置:首页 > 其它

让静态页面显示用户登录状态

2010-05-07 20:59 417 查看
静态页面上经常需要显示用户的登录状态,这样对用户来说才更加友好。

那么既然是静态页面了,那这个用户状态怎么显示呢?

两种方法:一个是iframe嵌入一个动态页面显示用户登录状态,但是这个要多一次页面请求,还涉及到链接的目标问题,不是很好。

另外一种就是AJAX。也分是否从服务器端读取,如果从服务器端读取,还是需要往返一次页面请求,性能相对较低。下面介绍直接把用户登录状态保存到客户端。这样效率最高。

正常的用户登录过程就不多介绍了,这个大家可以搜索一下。我主要介绍如何保持登录状态到客户端。

首先在登录页面写如下代码:

//存入cookie
HttpCookie newCookie = new HttpCookie("User");
newCookie.Expires.AddMinutes(30);//设置时间
newCookie.Values.Add("uid","001");
newCookie.Values.Add("username","leo li");
Response.AppendCookie(newCookie);


这里是把用户名等信息客户端存cookie

在html页中的代码如下:

<html>
<title>测试</title>
<mce:script type="text/javascript" language="javascript"><!--
function GetCookie(sMainName, sSubName) {
var sCookieName = sMainName + "=";
var sSubCookieName = (sSubName) ? sSubName + "=" : null;
var sCookie;
var sWholeCookie = document.cookie;

var nValueBegin = sWholeCookie.indexOf(sCookieName);
if (nValueBegin != -1) {
var nValueEnd = sWholeCookie.indexOf(";", nValueBegin);
if (nValueEnd == -1)
nValueEnd = sWholeCookie.length;

var sValue = sWholeCookie.substring(nValueBegin + sCookieName.length, nValueEnd); //获得Cookie值

if (sSubCookieName)//多值Cookie
{
var nSubValueBegin = sValue.indexOf(sSubCookieName);
if (nSubValueBegin != -1) {
var nSubValueEnd = sValue.indexOf("&", nSubValueBegin);
if (nSubValueEnd == -1)
nSubValueEnd = sValue.length;
var sSubValue = sValue.substring(nSubValueBegin + sSubCookieName.length, nSubValueEnd); //获得指定的子键值
return unescape(sSubValue);
}
}
if (!sSubCookieName)
return unescape(sValue);
}
return null;
}
function a() {
if (GetCookie('User', 'name') != null) {
document.write('用户名:' + GetCookie('User', 'name') + '<a href="/logout.aspx" mce_href="logout.aspx">注销</a>');
}
else {
document.write('<a href="/login.aspx" mce_href="login.aspx">登录</a> <a href="/reg.aspx" mce_href="reg.aspx">注册</a>');
}
}
// --></mce:script>
<head>
</head>
<body onload="a()">
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐