我写了一个示例并在我的主机上进行了测试(它是共享的)。并在我的网络配置中放置一个 machineKey。我创建存储数据的树类型:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Session["x"] = "A";
HttpContext.Current.Application.Add("y", "B");
Application["z"] = "C";
}
}
并将按钮放在我的表单上并在其事件中写入:
protected void Button1_Click(object sender, EventArgs e)
{
try
{
Label1.Text = Session["x"].ToString();
}
catch (Exception err)
{
Label1.Text = err.Message;
}
try
{
Label2.Text = HttpContext.Current.Application["y"].ToString();
}
catch (Exception err)
{
Label2.Text = err.Message;
}
try
{
Label3.Text = Application["z"].ToString();
}
catch (Exception err)
{
Label3.Text = err.Message;
}
}
当 iis 随时回收并丢弃任何缓存/内存内容时,我丢失了所有类型的所有数据。所有返回的对象引用未设置为对象的实例。
用户来想登录,现在我如何以及在哪里可以存储正确用户的 id 或用户名,直到 iis 回收我有我的数据并且可以实现用户已登录?cookie 是否可以很好地存储这些数据,例如用户的用户名和密码?