Asp.net 基于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;
}
}
}



相关阅读:
jquery.boxy插件的iframe扩展代码
为JavaScript的String增加Trim函数
CSS制作网页的一些经验分享
Ajax技术概述与现状应用
PHP 的未来:了解 PHP6 的变化及其对脚本的影响
web 页面分页打印的实现
JSP和JSF双剑合并 打造完美Web应用
jQuery AnythingSlider滑动效果插件
自制基于jQuery的智能提示插件一枚
Linux系统中添加自己的库文件路径
GNU/Linux安装vmware
rpm安装以及rpm升级命令
Ubuntu Linux系统三种方法添加本地软件库
动态加载外部css或js文件
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 重企企业文化建设研究 转眼青春散场 在命运中挣扎作文600字 幼师个人德育工作总结 公务员个人德能勤绩廉述职报告 宝马之来 见与不见 日记愚人节600字 会计月工作总结与工作计划 书香伴我成长作文700字 中学教师体音美学科培训活动心得 真的就这样过了 妇女节祝福短信送给广大的女性朋友 奶奶家里养了一只小花猫作文500字 穿透纸背的爱 加强科技创新服务三农演讲稿 聆听鸟语,沉淀的记忆,在这个金灿灿的秋 第一次坐动车作文200字 地下王国奇遇记作文400字 初二物理教师工作总结(1) 把深情捻成梦忆把爱恋酿成琼美 大学生《信仰》观后感 大学生村官调研报告 日全食1500字 妈妈去杭州了作文200字 我与中国梦共成长作文 猩猩造新房 法院青少年维权岗典型材料_事迹材料 发传单作文700字 全县扶贫开发大会讲话 部队落实科学发展观的学习思考 人教版七年级上册五单元作文:我爱我家7作文500字 其乐融融500字 《莫泊桑拜师》教案 我爱五星红旗 心中有爱,何处都是天堂 财务年末工作总结 浮生若梦。作文200字 我们走到了 再见 写在世界末日 读《新世纪班主任必读》有感 军训心得体会:努力篇 小学五年级作文700字:“三个和尚”的故事 2015大学新学期工作计划 难忘的水上运动会 飞行器动力专业毕业生求职信范文 如果没有如今的如果 海拉奖学金获奖感言 初语 第二框《党的基本路线》导学案分析 幼儿园大班语言:毕业诗

Copyright © 2016 phpStudy |