首页 > Web开发 > 详细

Asp.net 基于Cookie简易的权限判断

时间:2017-03-15 14:29:30      阅读:185      评论:0      收藏:0      [点我收藏+]

基于Cookie简易的权限判断代码,需要的朋友可以参考下。

写入Cookie页面,创建cookie后,设置cookie属性,并添加到Response.Cookies中读取cookie,利用cookie的名字或索引从Request.Cookies中取得改写Cookie,先创建一个同名的cookie,读取Request中同名的cookie,把读取cookie的属性值付给新的对象,加入到Response.Cookies中创建一个BasePage页面,其他的页面继承自这个页面,把权限判断的代码有单个页面的Page_Load转移到BasePage的PreLoad中,下面是BasePage的主要代码 

public class BasePage : System.Web.UI.Page 
{ 
private string pageName; 
public BasePage() 
{ 
this.Page.PreLoad += Page_Load; 
} 
protected void Page_Load(object sender, EventArgs e) 
{ 
if (!IsPostBack) 
{ 
Uri r = this.Request.Url; 
pageName = r.AbsolutePath; 
if (NeedToCheck()) 
{ 
if (!HasAuthentication()) 
{ 
HttpContext.Current.Response.Redirect("NoAuthenticationPage.aspx"); 
} 
} 
} 
} 
private bool NeedToCheck() 
{ 
if (pageName.Contains("NoAuthenticationPage.aspx") || pageName == "Login.aspx" ) 
{ 
return false; 
} 
return true; 
} 
private bool HasAuthentication() 
{ 
//look into the config file or database,to see whether this page is in the allow accessing list of the role or not; 
//the signature of the function is like this 
//QueryInConfig(m_UserRole,pageName); 
if (pageName.Contains("Default3.aspx") && UserRole == "2") 
{ 
return false; 
} 
return true; 
} 
protected HttpCookie _RequestCookie; 
protected HttpCookie _ResponseCookie; 
private bool b_IsNewCookie = true; 
public string UserRole 
{ 
get 
{ 
return GetCookieValue("UserRole"); 
} 
set 
{ 
SetCookieValue("UserRole", value); 
} 
} 
public string UserName 
{ 
get 
{ 
return GetCookieValue("UserName"); 
} 
set 
{ 
SetCookieValue("UserName", value); 
} 
} 
protected void SetCookieValue(string name, string value) 
{ 
SetResponseCookie(); 
_ResponseCookie[name] = value; 
} 
private string GetCookieValue(string name) 
{ 
SetReqeustCookie(); 
if (_RequestCookie != null) 
{ 
return _RequestCookie[name]; 
} 
return null; 
} 
protected void SetReqeustCookie() 
{ 
_RequestCookie = HttpContext.Current.Request.Cookies["Cookie_Name"]; 
} 
protected void SetResponseCookie() 
{ 
if (b_IsNewCookie) 
{ 
HttpContext.Current.Response.Cookies.Remove("Cookie_Name"); 
_ResponseCookie = new HttpCookie("Cookie_Name"); 
DateTime dtNow = DateTime.Now; 
TimeSpan tsMinute = new TimeSpan(0, 2, 0, 0); 
_ResponseCookie.Expires = dtNow + tsMinute; 
_ResponseCookie["UserRole"] = UserRole; 
_ResponseCookie["UserName"] = UserName; 
HttpContext.Current.Response.Cookies.Add(_ResponseCookie); 
b_IsNewCookie = false; 
} 
} 
} 

Asp.net 基于Cookie简易的权限判断

原文:http://www.cnblogs.com/sjqq/p/6553713.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!