我在网上找到孟子E章的一个,照着做, 
ad_list.aspx?id= <%#  objSecurity.EncryptQueryString((DataBinder.Eval(Container.DataItem,"id")).ToString())  %>  错误 95 当前上下文中不存在名称“objSecurity” D:\My Documents\ebaybao.cn\index\CommendCompany.ascx 11 我这个是在用户控件里做的,不知道是不是和这有关系,

解决方案 »

  1.   

    在你的类里要定义 objSecurity
      

  2.   

    在你的类里要定义 objSecurity
      

  3.   

    在你的类里要定义 objSecurity
      

  4.   

    sorry,网络很卡,不小心连发了3个。
      

  5.   

    定义一个加密解密类,objSecurity为实例化的名称,,EncryptQueryString为类中的方法。。
    可参考下这篇http://topic.csdn.net/t/20050226/09/3807776.html
      

  6.   

    public class objSecurity
    {
    public string EncryptQueryString(string is)
    {}
    //加密数据再返回
    }
      

  7.   

    objSecurity.EncryptQueryString换成 Server.UrlEncode  
    (解密 Server.UrlDecode)
      

  8.   

    public string EncryptQueryString(string QueryString)
       {
        return Encrypt(QueryString,_QueryStringKey);
       }
    private string Encrypt(string pToEncrypt,string sKey)
       {
        DESCryptoServiceProvider des = new DESCryptoServiceProvider(); ////把字符串放到byte数组中
       
        byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);
       
        des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); ////建立加密对象的密钥和偏移量
        des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);  //原文使用ASCIIEncoding.ASCII方法的GetBytes方法
        MemoryStream ms = new MemoryStream();   //使得输入密码必须输入英文文本
        CryptoStream cs = new CryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write);
       
        cs.Write(inputByteArray, 0, inputByteArray.Length);
        cs.FlushFinalBlock();
       
        StringBuilder ret = new StringBuilder();
        foreach(byte b in ms.ToArray())
        {
         ret.AppendFormat("{0:X2}", b);
        }
        ret.ToString();
        return ret.ToString();
       }