我有一个简单的访问控制类,允许检查用户有权限后,这则与静态变量相互作用:请问一个静态变量复位时间
private static bool canUpdate = false;
页面加载 期间这是用来保护无效的Page_Load(对象发件人,EventArgs的)
{
if (!Page.IsPostBack)
{
AccessControl I = new AccessControl(parameter);
canUpdate = I.HaveEdit;
}
BindGrid();
}
这一切都工作得很好,它简单,布尔,以便有条件地显示一个用作另一方法(称为一个gridview代码表达)的一部分连续控制。 这也很有用。
但是我正处于测试阶段,我意识到在正常的操作下一切都很好,但是经过一段时间后(显着的,就像半小时左右),按钮不再显示(换句话说, canUpdate已设置为false)。
用于显示的代码:
protected bool ShowNewStamps(object date)
{
//Returns to Bind Expression whether to display Timestamp Link
if (date == null & canUpdate == true)
return true;
else
return false;
}
的日期被传递在作为结合表达,传递之前的小区的日期,因此,我知道这不是问题。
这个问题仅在大量时间刷新页面时出现,这是由于静态变量具有生命周期,我只在第一页加载时设置变量?
不,但静态变量的生命周期与其AppDomain相同。如果您使用IIS,那么您的AppDomain最终将被回收。简而言之:不要为Web应用程序使用静态变量。将信息存储在数据库或会话状态中。 – Dirk