我从系统框架中读取子系统的数据库连接信息,然后把它们放到公共变量中,使用过程中总是不时的丢失,不知道什么原因,请大家帮忙解决以下,或者给点好的建议,谢谢大家了.
代码如下:
string Pt_Uid;                  //平台数据库用户名
string Pt_Pwd;                  //平台数据库密码
string Pt_Dsn;                  //平台数据库DSN//获取应用平台用户名、密码、DSN
Pt_Uid = Request.Cookies["PT"]["pt_UID"];
Pt_Pwd = Request.Cookies["PT"]["pt_PWD"];
Pt_Dsn = Request.Cookies["PT"]["pt_DSN"];
//将平台连接串放到公用变量中
ClsPublic.PtConnSting = "User ID=" + Pt_Uid + ";Password=" + Pt_Pwd + ";Data Source=" + Pt_Dsn + ";Persist Security Info=True";
ClsPublic.cs代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;/// <summary>
/// ClsPublic 的摘要说明
/// </summary>
public class ClsPublic
{
    public ClsPublic()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }
    //应用平台数据库连接串
    private static string _PtConnSting;
    public static string PtConnSting
    {
        get
        {
            return _PtConnSting;
        }
        set
        {
            _PtConnSting = value;
        }
    }
}
请大家帮忙,急

解决方案 »

  1.   

    你这种设计思路有严重的安全隐患
    如果一定要做,可以考虑用Hashtable缓存下来,
      

  2.   

    另外,注意你的cookie有效期
    每 次应用程序调试时必须清除Cookiehttp://blog.csdn.net/downmoon/archive/2007/06/13/1649923.aspx
      

  3.   

    把连接数据库的信息放在cookie时间很危险的事情
      

  4.   

    cookie的有效期没过吧?
    另外这种连结字符串这么隐秘的东西放在seesion里比较好些
      

  5.   

    你不要用变量来接受cookie你通过session的形式传输
    通过控件如Lable或者input的形式来接收你的信息 不要通过变量的形式这样容易数据丢失
      

  6.   

    理论上静态变量不重启应用程序是不会消失的是不是应用程序池或者IIS重启了 瞎猜- -!