1.由MSDN:若要使用 ViewState 属性,ASP.NET 网页必须有一个服务器窗体元素 (<form runat="server">)。
我用VIEWSTATE存储:    ViewState["test"] = "this is viewstate";
                     string v = (string)ViewState["test"];
                      Response.Write(v);
然后读取视图.如果读取服务器控件如Label1不用Label1.text的方法,有没有用viewstate方法读取(ASPX运行后,runat="server"的控件都有生成viewstate自动维护,是不是这样?)
2.在不知道viewstate里面存储哪些变量时,可不可以遍历viewstate保存的内容?3 Response.Cookies["usercookie"].Value = username.Text.ToString();
               Response.Cookies["usercookie"].Expires = DateTime.Now.AddDays(Convert.ToInt32(sdate.SelectedItem.Value)); Response.Write(Request.Cookies["usercookie"].Value.ToString())
我这样写COOKIE和读COOKIE,但我看到别人的程序有对COOKIE加票据一类的加密过程,请问这样的方法不够安全吗?(指在不把密码存在COOKIE里,那样安不安全?)

解决方案 »

  1.   

    再问个小问题
    怎么计算ASP。NET页面运行时间?
    我在page_init里算开始,在page_render算结束的,
    结果render里没输出来结果来
      

  2.   

    3 Forms验证使用Forms验证存储用户自定义信息 Forms验证在内部的机制为把用户数据加密后保存在一个基于cookie的票据FormsAuthenticationTicket中,因为是经过特殊加密的,所以应该来说是比较安全的。而.net除了用这个票据存放自己的信息外,还留了一个地给用户自由支配,这就是现在要说的UserData。 UserData可以用来存储string类型的信息,并且也享受Forms验证提供的加密保护,当我们需要这些信息时,也可以通过简单的get方法得到,兼顾了安全性和易用性,用来保存一些必须的敏感信息还是很有用的。 下面来看怎么使用UserData,然后会给出一个实际使用的例子。 //创建一个新的票据,将客户ip记入ticket的userdata 
    FormsAuthenticationTicket ticket=new FormsAuthenticationTicket( 
    1,userName.Text,DateTime.Now,DateTime.Now.AddMinutes(30), 
    false,Request.UserHostAddress); 
    //将票据加密 
    string authTicket=FormsAuthentication.Encrypt(ticket); 
    //将加密后的票据保存为cookie 
    HttpCookie coo=new HttpCookie(FormsAuthentication.FormsCookieName,authTicket); 
    //使用加入了userdata的新cookie 
    Response.Cookies.Add(coo); 下面是FormsAuthenticationTicket构造函数的重载之一的方法签名 
    public FormsAuthenticationTicket( 
    int version, 
    string name, 
    DateTime issueDate, 
    DateTime expiration, 
    bool isPersistent, 
    string userData 
    ); 参数 
    version 
    版本号。 
    name 
    与身份验证票关联的用户名。 
    issueDate 
    Cookie 的发出时间。 
    expiration 
    Cookie 的到期日期。 
    isPersistent 
    如果 Cookie 是持久的,为 true;否则为 false。 
    userData 
    将存储在 Cookie 中的用户定义数据 使用userdata也很简单,FormsIdentity的Ticket属性就提供了对当前票据的访问,获得票据后就可以用UserData属性访问保存的信息,当然是经过解密的。 
    ((System.Web.Security.FormsIdentity)this.Context.User.Identity).Ticket.UserData
      

  3.   

    3Q楼上的大哥
    我看到的就是这种加密Forms验证在内部的机制为把用户数据加密后保存在一个基于cookie的票据FormsAuthenticationTicket中,因为是经过特殊加密的,所以应该来说是比较安全的。而.net除了用这个票据存放自己的信息外,还留了一个地给用户自由支配,这就是现在要说的UserData。这句话的意思也就是说我没多大必要用这么复杂的加密方式做了,如果要提高安全性,直接不用这种COOKIE就是了