1.用session,并且每个页面判断它是否为null
session可以设置超时时间,超时自动就变回null了
2.可以,不过一般不会这么干.都是放到web.config文件里去

解决方案 »

  1.   


    web.config不会被客户端访问到吗?
      

  2.   


    web.config不会被客户端访问到吗?
    自己试验一下不就知道了
      

  3.   

    果断用 session  全局变量 啊有木有。
      

  4.   

    建议采用cookie 序列化  session易销毁  如果意外被销毁了那么还可以去全局里面拦截session_start 中把cookie取出来反序列化继续使用。。
    而用了session被销毁后 用户就只能进登录界面了  体验度不好 而且不好控制。因为你不能确认用户不会乱来
      

  5.   

    1.用session保存
    2.有效时长可在web.config配置
      

  6.   

    1.在一个一般处理程序中处理登录,把已登录的信息存放在session(易丢失),可以联合或保存在cookie中
    2.一般都是配置在web.config中,不用修改程序,就可以很容易的切换数据库
      

  7.   

    如果是简单的登录页面用SESSION还是比较方便的,可以设置session的有效时间。
    至于链接字符串,也是可以写到代码里面的,不过大部分人都会在webconfig文件里面写
      

  8.   

    1. HttpContext.Current.Session["USER"] = user[0];//你登录后查询的当前用户信息
    2.在写个公共类basePage,里面取值session
     public  static   PBS.SERVICE.SSOService.USER user=null;        private void Page_Init(object sender,EventArgs e)
            {
                this.InitComplete += new EventHandler(ManagePage_Load);
            }
           
            void ManagePage_Load(object sender, EventArgs e)
            {
                user =HttpContext.Current.Session["USER"] as PBS.SERVICE.SSOService.USER;
           }
    其他页面继承就可以了。3.在<system.web>节点下
     <sessionState mode="StateServer" cookieless="false" timeout="20"/>
      

  9.   

    用户登陆使用Session记录用户名密码示例
     protected void btnLoad_Click(object sender, ImageClickEventArgs e)
        {
            HttpCookie cookie = Request.Cookies["CheckCode"];
            if (String.Compare(cookie.Value, txtVali.Text, true) != 0)
            {
                Response.Write("<script lanuage=javascript>alert('验证码错误');location='javascript:history.go(-1)'</script>");
            }
            else
            {
                int i = this.checkLogin(txtUid.Text, txtPwd.Text);
                if (i > 0)
                {
                    Session["UserName"] = this.txtUid.Text;
                    Session["PassWord"] = this.txtPwd.Text;
                    Page.Response.Redirect("~/Module/ST_Index.aspx");
                }
                else
                {
                    Response.Write("<script lanuage=javascript>alert('用户名称或密码错误!');location='javascript:history.go(-1)'</script>");
                }
            }
        }
      public int checkLogin(string loginName, string loginPwd)
        {
            SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["conStr"]);
            SqlCommand myCommand = new SqlCommand("select count(*) from tb_Blog where UserName=@loginName and PassWord=@loginPwd", con);
            myCommand.Parameters.Add(new SqlParameter("@loginName", SqlDbType.NVarChar, 50));
            myCommand.Parameters["@loginName"].Value = loginName;
            myCommand.Parameters.Add(new SqlParameter("@loginPwd", SqlDbType.NVarChar, 50));
            myCommand.Parameters["@loginPwd"].Value = loginPwd;
            myCommand.Connection.Open();
            int i = (int)myCommand.ExecuteScalar();
            myCommand.Connection.Close();
            return i;
        }
    //Session对象判断登陆状态
      protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["UserName"] == null)
            {
                Response.Redirect("Default.aspx");
            }
            else
            {
                Response.Write("管理员"+Session["name"]+"成功登录!");
            }
        }
      

  10.   

    最简单的方式,是吧一个“登录啦”字符串写到cookie,以后判断是否登录,就判断这个字符串。不过这种方式是“死的”,客户端很容易伪造。而第二种方式,就是可以在cookie中写入一个用户登录授权码,这可能是一长串随即编码,例如%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%88%86%E5%B8%83%E5%BC%8F%E4%BB%BB%E5%8A%A1 这样的,而且是你的程序随即产生的。然后在你服务器端能够根据这个编码可以查询出相关的所有信息。至于说是从数据库查、其它存储查询,你自己开选择你熟悉的任何方式。将来要加速查询,可以使用Cache机制。用户长时间不操作,其实你没有必要侵犯用户的任何权益,没有必要丢弃用户信息。有些人的asp.net程序使用了Session集合,因此总是(每隔7、8分钟)“丢失”或者(每隔20分钟)“过期”用户信息,那其实是Session集合的技术问题。使用cookie不存在这种技术问题。当用户彻底关闭你的网站的网页,在浏览器端的cookie内存中的那部分就会消失。因此你也可以在你的后台针对你的“登录授权号”保存一个“最后访问时间”字段,然后每天凌晨清理一下“凡是最后访问时间超过12个小时”的相关数据,清理垃圾数据。
      

  11.   

    第二个问题,数据库用户名和密码当然可以写在程序里。然后等你确实需要经常修改这个代码的时候,你可以把代码改为每一次都从配置文件读取这两个数据的形式(而不是写死在代码里)。如果使用配置文件,注意首先使用web.config文件。因为asp.net对这个配置文件进行了性能优化,它可以自动进行数据缓冲,而不是在你读取数据时反复读取文件。数据库要在本地、或者受控的局域网里访问,不能开放到更大的范围。肯定有人想随便查询你的数据库、修改他自己的信息、甚至删除一大帮人的其它信息,而你的“用户名、密码”这种东西其实轻易就可以攻破。所以数据库的“远程访问”权限通常都应被设置为“禁止”,而且往往会故意删除一些东西,防止别有用心的人去临时把“禁止”变为“启用”。
      

  12.   

    自我感觉,可以使用cookie +guid吧 把用户名  和随机产生的guid值 分别放到客户端cookie和数据库中,然后可以验证cookie和guid是否匹配来验证是否登陆,这样做其实和asp.net的seesion原理差不对,自我感觉优点是cookie易操作,可以随后便设置过期时间 ,又不会占用服务器内存(貌似seesion是占用内存的)。安全性方面guid值是一个全球唯一的一串数字,及时客户端修改cookie中的guid值也不会有安全问题你,只会造成用户登陆失效。
      

  13.   

    数据库连接字符串我一般写到web.config中代码<connectionStrings>
            <add name="connstr" connectionString="Data Source=.(若是本地连接这里是一个. 远程连接就写IP);Initial Catalog=数据库名称;User Id=名称;Password=密码;" />
        </connectionStrings>