我正在使用ASP.NET MVC5。我想为客户请求保留id。需要此id才能在服务器端用于另一个ajax请求。不可能保留在HttpContext.Items中,因为它是单个请求生存期。我不想把它留在隐藏的领域。可以从客户端更改隐藏字段值。我也不想留在Session中,因为这个id只需要一些请求,而不是总是需要。所以我想知道,还有其他任何技术可以保持这种安全。
答案 0 :(得分:-1)
州管理类型
客户端
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()
方法的调用。然后覆盖LoadControlState
和SaveControlState
以保存所需的状态信息。