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


  • 相关阅读:
    面经-新浪
    面经-中兴
    面经-趋势科技
    面经-酷家乐
    面经-大华
    面经-明略科技
    面经-小米
    面经-虹软
    coroutine
    Coroutine 终止协程和异常处理
  • 原文地址:https://www.cnblogs.com/sjqq/p/6553713.html
Copyright © 2020-2023  润新知