AJAX在静态HTML页面中实现权限控制的应用

时间:2022-04-11 15:20:58

        最近做了一个铁路局的行车规则发布系统,有点类似于一个新闻发布系统.因为数据量大,为了加快访问的速度,我把里面的规则在后台添加时生成了静态页面保存在硬盘上, 这样每次访问就不必要去数据库取数据了.但是一个问题出现了,就 是这些规则都需要登陆之后才能访问,没登陆是不允许访问的,所以必须在这些静态页面上进行权限的控制,那么在静态页面中怎么判断用户是否登陆了呢......??

        最近刚学了点AJAX,这时就派上用场了,呵呵,AJAX可以异步发送请求到服务器,然后返回一个结果,呵呵,那么这正好是我需要的,解决思路如下:
       在静态页面的模版页中写一段javascript代码,用来发送请求到服务器,在服务器端写一段代码用来检查用户是否登陆,然后返回一个结果给这个html页面,html页面根据返回的结果决定是显示还是转到登陆页面强制用户登陆,到此,问题的解决思路应该明了了,下面来看看实现的代码:

HTML模版页TemplateRules.html代码:
由于模版页比较长,这里只登出AJAX代码部分,即<Body>标签前面的部分

AJAX在静态HTML页面中实现权限控制的应用<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
AJAX在静态HTML页面中实现权限控制的应用
<script type="text/javascript" language="javascript">
AJAX在静态HTML页面中实现权限控制的应用    
//创建适用用与多种浏览器的XMLHttpRequest对象的函数
AJAX在静态HTML页面中实现权限控制的应用AJAX在静态HTML页面中实现权限控制的应用
    function getXMLRequester( ){    
AJAX在静态HTML页面中实现权限控制的应用    
var xmlhttp_request = false;    
AJAX在静态HTML页面中实现权限控制的应用AJAX在静态HTML页面中实现权限控制的应用        
try{        
AJAX在静态HTML页面中实现权限控制的应用AJAX在静态HTML页面中实现权限控制的应用            
if( window.ActiveXObject ){            
AJAX在静态HTML页面中实现权限控制的应用AJAX在静态HTML页面中实现权限控制的应用                
forvar i = 5; i; i-- ){               
AJAX在静态HTML页面中实现权限控制的应用AJAX在静态HTML页面中实现权限控制的应用                 
try{                   
AJAX在静态HTML页面中实现权限控制的应用AJAX在静态HTML页面中实现权限控制的应用                  
if( i == 2 ){xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" );                       
AJAX在静态HTML页面中实现权限控制的应用AJAX在静态HTML页面中实现权限控制的应用                   }
else{xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );    
AJAX在静态HTML页面中实现权限控制的应用                   xmlhttp_request.setRequestHeader(
"Content-Type","text/xml");xmlhttp_request.setRequestHeader("Content-Type","gb2312");                
AJAX在静态HTML页面中实现权限控制的应用                    }

AJAX在静态HTML页面中实现权限控制的应用                    
break;}
               
AJAX在静态HTML页面中实现权限控制的应用AJAX在静态HTML页面中实现权限控制的应用                     
catch(e){   
AJAX在静态HTML页面中实现权限控制的应用                           xmlhttp_request 
= false;              
AJAX在静态HTML页面中实现权限控制的应用                             }
          
AJAX在静态HTML页面中实现权限控制的应用                               }
       
AJAX在静态HTML页面中实现权限控制的应用AJAX在静态HTML页面中实现权限控制的应用                      }
else if( window.XMLHttpRequest ){            
AJAX在静态HTML页面中实现权限控制的应用                      xmlhttp_request 
= new XMLHttpRequest();           
AJAX在静态HTML页面中实现权限控制的应用AJAX在静态HTML页面中实现权限控制的应用                       
if (xmlhttp_request.overrideMimeType) {                
AJAX在静态HTML页面中实现权限控制的应用                       xmlhttp_request.overrideMimeType(
'text/xml');            
AJAX在静态HTML页面中实现权限控制的应用                       }
       
AJAX在静态HTML页面中实现权限控制的应用                        }
   
AJAX在静态HTML页面中实现权限控制的应用                         }

AJAX在静态HTML页面中实现权限控制的应用AJAX在静态HTML页面中实现权限控制的应用                         
catch(e){        
AJAX在静态HTML页面中实现权限控制的应用                         xmlhttp_request 
= false;   
AJAX在静态HTML页面中实现权限控制的应用                          }
    
AJAX在静态HTML页面中实现权限控制的应用                          
return xmlhttp_request ;
AJAX在静态HTML页面中实现权限控制的应用    }

AJAX在静态HTML页面中实现权限控制的应用AJAX在静态HTML页面中实现权限控制的应用    
function IDRequest() {
AJAX在静态HTML页面中实现权限控制的应用    
//定义收到服务器的响应后需要执行的JavaScript函数
AJAX在静态HTML页面中实现权限控制的应用
    url='CheckLogin.aspx'//定义网址参数
AJAX在静态HTML页面中实现权限控制的应用
    //alert(url);        
AJAX在静态HTML页面中实现权限控制的应用
    xmlhttp_request=getXMLRequester();//调用创建XMLHttpRequest的函数        
AJAX在静态HTML页面中实现权限控制的应用
    xmlhttp_request.onreadystatechange = doContents;//调用doContents函数        
AJAX在静态HTML页面中实现权限控制的应用
    xmlhttp_request.open('POST', url, true);        
AJAX在静态HTML页面中实现权限控制的应用    xmlhttp_request.send(
null);    
AJAX在静态HTML页面中实现权限控制的应用    }
    
AJAX在静态HTML页面中实现权限控制的应用AJAX在静态HTML页面中实现权限控制的应用    
function doContents() {        
AJAX在静态HTML页面中实现权限控制的应用AJAX在静态HTML页面中实现权限控制的应用    
if (xmlhttp_request.readyState == 4{// 收到完整的服务器响应            
AJAX在静态HTML页面中实现权限控制的应用AJAX在静态HTML页面中实现权限控制的应用
        if (xmlhttp_request.status == 200{//HTTP服务器响应的值OK
AJAX在静态HTML页面中实现权限控制的应用
        var str = xmlhttp_request.responseText;//将服务器返回的字符串写到页面中ID为message的区域  
AJAX在静态HTML页面中实现权限控制的应用
        if(str.length>583)
AJAX在静态HTML页面中实现权限控制的应用AJAX在静态HTML页面中实现权限控制的应用                
{
AJAX在静态HTML页面中实现权限控制的应用                    
//self.location="../login.aspx";
AJAX在静态HTML页面中实现权限控制的应用
                    location.href='../Login.aspx';
AJAX在静态HTML页面中实现权限控制的应用                    
AJAX在静态HTML页面中实现权限控制的应用                }
          
AJAX在静态HTML页面中实现权限控制的应用AJAX在静态HTML页面中实现权限控制的应用        }
 else {                
AJAX在静态HTML页面中实现权限控制的应用        alert(http_request.status);            
AJAX在静态HTML页面中实现权限控制的应用        }
        
AJAX在静态HTML页面中实现权限控制的应用        }
    
AJAX在静态HTML页面中实现权限控制的应用        }

AJAX在静态HTML页面中实现权限控制的应用        IDRequest();
AJAX在静态HTML页面中实现权限控制的应用        
</script>
AJAX在静态HTML页面中实现权限控制的应用
<html xmlns="http://www.w3.org/1999/xhtml" >
AJAX在静态HTML页面中实现权限控制的应用
<head runat="server">
AJAX在静态HTML页面中实现权限控制的应用    
<title>$Chapter$-->>$Order$-->>$Title$</title>
AJAX在静态HTML页面中实现权限控制的应用    
<link href="../StyleSheet.css" rel="stylesheet" type="text/css" />
AJAX在静态HTML页面中实现权限控制的应用
</head>

此处要提一下:上面文件中的以下代码部分是根据服务器端返回结果决定是否强制登陆的关键部分,因为我们是通过xmlhttp_request.responseText;来看返回结果的,而这个返回文本是服务器端页面的html,所以在此处我们通过返回的这个文本长度来判断服务器端返回的是已登陆还是未登陆,如果已登陆则长度肯定小于583,(当然这个长度会因为每个人的做法不同而不同,可根据实际情况来确定一下服务器端的文件HTML的长度),这样就可以进行判断了

AJAX在静态HTML页面中实现权限控制的应用 var str = xmlhttp_request.responseText;//将服务器返回的字符串写到页面中ID为message的区域  
AJAX在静态HTML页面中实现权限控制的应用
        if(str.length>583)
AJAX在静态HTML页面中实现权限控制的应用AJAX在静态HTML页面中实现权限控制的应用                
{
AJAX在静态HTML页面中实现权限控制的应用                    
//self.location="../login.aspx";
AJAX在静态HTML页面中实现权限控制的应用
                    location.href='../Login.aspx';
AJAX在静态HTML页面中实现权限控制的应用                    
AJAX在静态HTML页面中实现权限控制的应用                }
          
AJAX在静态HTML页面中实现权限控制的应用AJAX在静态HTML页面中实现权限控制的应用        } 
else {                
AJAX在静态HTML页面中实现权限控制的应用        alert(http_request.status);            
AJAX在静态HTML页面中实现权限控制的应用        }
        


接下来就是服务器端用来检测是否登陆的页面checklogin.ascx的代码(很简单):

AJAX在静态HTML页面中实现权限控制的应用using System;
AJAX在静态HTML页面中实现权限控制的应用
using System.Data;
AJAX在静态HTML页面中实现权限控制的应用
using System.Configuration;
AJAX在静态HTML页面中实现权限控制的应用
using System.Collections;
AJAX在静态HTML页面中实现权限控制的应用
using System.Web;
AJAX在静态HTML页面中实现权限控制的应用
using System.Web.Security;
AJAX在静态HTML页面中实现权限控制的应用
using System.Web.UI;
AJAX在静态HTML页面中实现权限控制的应用
using System.Web.UI.WebControls;
AJAX在静态HTML页面中实现权限控制的应用
using System.Web.UI.WebControls.WebParts;
AJAX在静态HTML页面中实现权限控制的应用
using System.Web.UI.HtmlControls;
AJAX在静态HTML页面中实现权限控制的应用
AJAX在静态HTML页面中实现权限控制的应用
public partial class CheckLogin : System.Web.UI.Page
AJAX在静态HTML页面中实现权限控制的应用AJAX在静态HTML页面中实现权限控制的应用
{
AJAX在静态HTML页面中实现权限控制的应用    
protected void Page_Load(object sender, EventArgs e)
AJAX在静态HTML页面中实现权限控制的应用AJAX在静态HTML页面中实现权限控制的应用    
{
AJAX在静态HTML页面中实现权限控制的应用        
if (Request.Cookies["UserInfo"== null || Request.Cookies["UserInfo"].Values["UserName"].ToString() == "")
AJAX在静态HTML页面中实现权限控制的应用AJAX在静态HTML页面中实现权限控制的应用        
{
AJAX在静态HTML页面中实现权限控制的应用            Response.Write(
"111111111111111111111111111111111111111111");//输出不同长度的字符串
AJAX在静态HTML页面中实现权限控制的应用
        }

AJAX在静态HTML页面中实现权限控制的应用        
else
AJAX在静态HTML页面中实现权限控制的应用            Response.Write(
"1");
AJAX在静态HTML页面中实现权限控制的应用    }

AJAX在静态HTML页面中实现权限控制的应用}

AJAX在静态HTML页面中实现权限控制的应用


就这样,通过上面的HTML模版页生成的规则就可以进行用户权限控制了