• asp.net获取当前页面文件名,参数,域名等方法。统一session验证和权限验证的方法


    ASP.net后台获取当前页面的文件名

    System.IO.Path.GetFileName(Request.Path).ToString();

    获取当前页面文件名,参数,域名等方法

    假设当前页完整地址是:http://www.test.com/aaa/bbb.aspx?id=5&name=kelli

    "http://"是协议名

    "www.test.com"是域名

    "aaa"是虚拟目录名

    "bbb.aspx"是页面名(文件名)

    "id=5&name=kelli"是参数


    【1】获取 完整url (协议名+域名+虚拟目录名+文件名+参数)

    string url=Request.Url.ToString();

    url= http://www.test.com/aaa/bbb.aspx?id=5&name=kelli

    【2】获取 虚拟目录名+页面名+参数:

    string url=Request.RawUrl;

    (或 string url=Request.Url.PathAndQuery;)

    url= /aaa/bbb.aspx?id=5&name=kelli

    【3】获取 虚拟目录名+页面名:

    string url=HttpContext.Current.Request.Url.AbsolutePath;

    (或 string url= HttpContext.Current.Request.Path;)

    url= /aaa/bbb.aspx

    【4】获取 域名:

    string url=HttpContext.Current.Request.Url.Host;

    url= www.test.com

    【5】获取 参数:

    string url= HttpContext.Current.Request.Url.Query;

    url= ?id=5&name=kelli

    Request.QueryString["id"]和Request.QueryString["name"]访问各参数

    Request.UrlReferrer可以获取客户端上次请求的url的有关信息, 这样我们就可以通过这个属性返回到“上一页”。

    同样地,Request.UrlReferrer.Query可以获取客户端上次请求的url的有关参数部分。

    统一验证:

    最近发现了一个比较好的统一验证的方法,在这里写出来,我是通过了测试的,不过还不是十分的清楚有没有不恰当的地方,还望有高手指点一二。

    在appcode文件夹下面新建一个类文件,继承page类,在文件中添加page.load的事件,然后在需要进行验证的文件.cs也继承这个类。举例说明

    新建一个BasePage_mana.cs的类文件:

    1. using System.Collections;  
    2. using System.Web;  
    3. using System.Web.Security;  
    4. using System.Web.UI;  
    5. using System.Web.UI.WebControls;  
    6. using System.Web.UI.WebControls.WebParts;  
    7. using System.Web.UI.HtmlControls;  
    8. using WebUtil;  
    9. using SysModel;  
    10. using SysDal;  
    11.   
    12. /// <summary>  
    13. ///让所有后台管理页都继承这个类,在这里进行session验证和权限验证等操作。  
    14. /// </summary>  
    15. public class BasePage_mana : System.Web.UI.Page  
    16. {  
    17.     public BasePage_mana()  
    18.     {  
    19.         this.Load += new EventHandler(thisLoad);  
    20.         //  
    21.         //TODO: 验证程序 有待完善(todo:是未完成工作的提示)  
    22.         //  
    23.     }  
    24.     void thisLoad(object sender, EventArgs e)  
    25.     {  
    26. #warning 验证程序 有待完善(warning是警告的设置)  
    27.         if (System.String.IsNullOrEmpty(Session["BN_JobNum"as string))  
    28.         {  
    29.             Response.Write("<mce:script language='javascript'><!--  
    30. alert('请重新登陆!');parent.location.href='../login_test.aspx';  
    31. // --></mce:script>");  
    32.             Response.End();  
    33.         }  
    34.         PurviewDAL Pdal = new PurviewDAL();  
    35.         string pageName = System.IO.Path.GetFileName(Request.Path).ToString();//我这里做了一个权限判断的类,我把文件名当做权限名,这样就可以做到统一判断了  
    36.         if (Pdal.PowerControl(Session["BN_JobNum"].ToString(), pageName) == false)  
    37.         {  
    38.             Response.Write("<mce:script language=javascript><!--  
    39. alert('您没有权限!');history.go(-1);  
    40. // --></mce:script>");  
    41.             Response.End();  
    42.         }  
    43.     }  
    44. }  

    然后在文件test.aspx中继承这个类

    1. using System;  
    2. using System.Data;  
    3. using System.Configuration;  
    4. using System.Collections;  
    5. using System.Web;  
    6. using System.Web.Security;  
    7. using System.Web.UI;  
    8. using System.Web.UI.WebControls;  
    9. using System.Web.UI.WebControls.WebParts;  
    10. using System.Web.UI.HtmlControls;  
    11. using System.Collections.Generic;  
    12. using OnlineUser;  
    13. using SysModel;  
    14. using SysDal;  
    15. using WebUtil;  
    16.   
    17. public partial class test : BasePage_do//继承创建的那个类  
    18. {  
    19.     protected void Page_Load(object sender, EventArgs e)  
    20.     {}  

  • 相关阅读:
    无题
    静心
    随笔
    skynet1.0阅读笔记2_skynet的消息投递skynet.call
    skynet1.0阅读笔记_skynet的启动
    Mysql: Connect/C++ 使用过程中发现返回 std::string 造成的内存泄露
    MySql C++调用库Connector/c++编译 和 接口封装【三】Connector/c++ 使用总结及封装
    MySql: ”Commands out of sync“Error (Connect/C++)
    Connector/c++ 查询Mysql,出现 can't fetch because not on result set 错误
    mysql 修改密码
  • 原文地址:https://www.cnblogs.com/zhangchenliang/p/2040928.html
Copyright © 2020-2023  润新知