如何在ASP.NET MVC中保持客户端数据安全

时间:2015-08-26 09:25:27

标签: asp.net-mvc-5

我正在使用ASP.NET MVC5。我想为客户请求保留id。需要此id才能在服务器端用于另一个ajax请求。不可能保留在HttpContext.Items中,因为它是单个请求生存期。我不想把它留在隐藏的领域。可以从客户端更改隐藏字段值。我也不想留在Session中,因为这个id只需要一些请求,而不是总是需要。所以我想知道,还有其他任何技术可以保持这种安全。

1 个答案:

答案 0 :(得分:-1)

州管理类型

客户端

  1. 查看州
  2. 缓存
  3. 控制状态
  4. 1.查看状态: 视图状态提供页面级状态管理,即,只要用户在当前页面上,状态可用并且用户重定向到下一页并且当前页面状态丢失。 View State可以存储任何类型的数据,因为它是对象类型,但由于需要对每个帖子进行序列化和去除,因此最好不要存储复杂类型的数据。默认情况下,为ASP.NET的所有服务器端控件启用视图状态,并将属性EnableviewState设置为true。

    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            if (ViewState["count"] != null)
            {
                int ViewstateVal = Convert.ToInt32(ViewState["count"]) + 1;
                Label1.Text = ViewstateVal.ToString();
                ViewState["count"]=ViewstateVal.ToString();
            }
            else
            {
                ViewState["count"] = "1";
            }
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
           Label1.Text=ViewState["count"].ToString();
    }
    

    <强> 2.Cookies:一个。持久性Cookie:您可以设置到期日期的Cookie称为持久性Cookie。持久性cookie将永久存储,直到您设置为止。

    让我们看看如何创建持久性cookie。有两种方法,第一种方式是:

    Response.Cookies["nameWithPCookies"].Value = "This is A Persistance Cookie";
    Response.Cookies["nameWithPCookies"].Expires = DateTime.Now.AddSeconds(10); 
    

    第二个是:

    HttpCookie aCookieValPer = new HttpCookie("Persistance");
    aCookieValPer.Value = "This is A Persistance Cookie";
    aCookieValPer.Expires = DateTime.Now.AddSeconds(10);
    Response.Cookies.Add(aCookieValPer);
    

    <强>湾非持久性Cookie:非持久性Cookie不会永久存储在用户客户端硬盘文件夹中。只要用户访问同一浏览器,它就会维护用户信息。当用户关闭浏览器时,cookie将被丢弃。非持久性cookie对公共计算机很有用。

    让我们看看如何创建非持久性cookie。有两种方法,第一种方式是:

    Response.Cookies["nameWithNPCookies"].Value = "This is A Non Persistance Cookie";
    

    第二种方式是:

    HttpCookie aCookieValNonPer = new HttpCookie("NonPersistance");
    aCookieValNonPer.Value = "This is A Non Persistance Cookie;
    Response.Cookies.Add(aCookieValNonPer);
    

    如何阅读cookie:

    if (Request.Cookies["NonPersistance"] != null)
    Label2.Text = Request.Cookies["NonPersistance"].Value;
    

    第3。控制状态

    如何使用控件状态属性:控件状态实现很简单。首先覆盖控件的OnInit()方法,并为要注册的控件实例添加Page.RegisterRequiresControlState()方法的调用。然后覆盖LoadControlStateSaveControlState以保存所需的状态信息。