手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >Asp.net 基于Cookie简易的权限判断
Asp.net 基于Cookie简易的权限判断
摘要:写入Cookie页面,创建cookie后,设置cookie属性,并添加到Response.Cookies中读取cookie,利用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简易的权限判断】相关文章:

asp.net 大文件上传控件

ASP.NET 状态的传递和保存

在asp.net中实现datagrid checkbox 全选的方法

asp.net 数据访问层基类

asp.net C#检查URL是否有效的方法

asp.net下定制日期输出格式的代码

ASP.net做的IP访问限制

asp.net 操作cookie的实例

asp.net 日期函数 某月的第一天和最后一天的日期

asp.net aspnetpager分页统计时与实际不符的解决办法

精品推荐
分类导航