写入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;
}
}
}



