2

我在 ASP.NET 中有一个使用表单身份验证的应用程序。它有以下代码。

if (User.Identity.IsAuthenticated)
        ViewStateUserKey = User.Identity.Name;

单步执行我看到此代码在每个页面加载时执行。当登录用户请求该页面时,ViewStateUserKey 将填写他们的用户名。如果您让页面等待表单身份验证超时,则用户不再登录,并且由于名称现在为空,因此在验证视图状态时回发失败。但是我注意到,如果我在屏幕上放置其他按钮,然后发回,它不会失败,即使在身份验证超时后也是如此。每次超时都应该出现这个错误吗?

4

1 回答 1

0

如果这是在 page_init 之后加载的 page_init 视图状态中,那么您的答案很容易。在这里,您有Pagelifecycle的描述,它描述了加载视图状态发生在页面 init 事件之后。所以视图变量在 page_init 中不可用

于 2011-03-31T09:30:13.363 回答