此处要提一下:上面文件中的以下代码部分是根据服务器端返回结果决定是否强制登陆的关键部分,因为我们是通过xmlhttp_request.responseText;来看返回结果的,而这个返回文本是服务器端页面的html,所以在此处我们通过返回的这个文本长度来判断服务器端返回的是已登陆还是未登陆,如果已登陆则长度肯定小于583,(当然这个长度会因为每个人的做法不同而不同,可根据实际情况来确定一下服务器端的文件HTML的长度),这样就可以进行判断了
var str = xmlhttp_request.responseText;//将服务器返回的字符串写到页面中ID为message的区域
if(str.length>583)
{
//self.location="../login.aspx";
location.href='../Login.aspx';
}
} else {
alert(http_request.status);
}
接下来就是服务器端用来检测是否登陆的页面checklogin.ascx的代码(很简单):
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class CheckLogin : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Cookies["UserInfo"] == null || Request.Cookies["UserInfo"].Values["UserName"].ToString() == "")
{
Response.Write("111111111111111111111111111111111111111111");//输出不同长度的字符串
}
else
Response.Write("1");
}
}
就这样,通过上面的HTML模版页生成的规则就可以进行用户权限控制了