Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 5 如何在ASP.NET MVC中保证客户端数据安全_Asp.net Mvc 5 - Fatal编程技术网

Asp.net mvc 5 如何在ASP.NET MVC中保证客户端数据安全

Asp.net mvc 5 如何在ASP.NET MVC中保证客户端数据安全,asp.net-mvc-5,Asp.net Mvc 5,我正在使用ASP.NETMVC5。我想保留客户请求的id。需要在服务器端为另一个ajax请求使用此id。无法保存在HttpContext.Items中,因为它是单请求生存期。我不想把它藏在隐蔽的地方。可以从客户端更改隐藏字段值。我也不想保持会话状态,因为只有一些请求需要这个id,而不是总是需要。所以我想知道,有没有其他技术可以保证这个id的安全。状态管理类型 客户端 视图状态 饼干 控制状态 1.视图状态: 视图状态提供页面级状态管理,即只要用户在当前页面上,状态就可用,并且用户重定向到下一页,

我正在使用ASP.NETMVC5。我想保留客户请求的id。需要在服务器端为另一个ajax请求使用此id。无法保存在HttpContext.Items中,因为它是单请求生存期。我不想把它藏在隐蔽的地方。可以从客户端更改隐藏字段值。我也不想保持会话状态,因为只有一些请求需要这个id,而不是总是需要。所以我想知道,有没有其他技术可以保证这个id的安全。

状态管理类型

客户端

  • 视图状态
  • 饼干
  • 控制状态
  • 1.视图状态: 视图状态提供页面级状态管理,即只要用户在当前页面上,状态就可用,并且用户重定向到下一页,并且当前页面状态丢失。视图状态可以存储任何类型的数据,因为它是对象类型,但最好不要存储复杂类型的数据,因为每次回发都需要序列化和反序列化。默认情况下,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: a。持久性Cookie:可以设置到期日期和时间的Cookie称为持久性Cookie。持久性Cookie将永久存储到您设置的时间

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

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

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

    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.registerRequestResControlState()方法的调用。然后重写
    LoadControlState
    SaveControlState
    ,以保存所需的状态信息。

    谢谢您的回答。这是web表单,而不是像标题所说的mvc