我在 ASP.NET 页面之间传递 int 值时遇到问题。我有一个登录页面,用户使用用户名和密码登录,用户 ID 在数据库中找到并用于设置变量的值,该变量可通过 get 属性访问,如果成功,第二个通过此方法调用页面 (LoggedIn.aspx):
Server.Transfer("LoggedIn.aspx", true);
在 LoggedIn 页面中,我将其放在顶部:
<%@ PreviousPageType VirtualPath="~/AccountLogin.aspx" %>
userid 的值存储在构造函数的全局变量中:
if (this.PreviousPage != null)
user = PreviousPage.userid;
另一个 get 属性提供对该变量的访问。当用户选择一个按钮时,这个过程会重复到第三页。我似乎遇到并且无法完全弄清楚的问题是,当用户选择 LoggedIn 页面上的按钮时,该页面似乎重新加载,因此 userid 值设置为零,因此该值无用。
- 我应该改用会话状态(即,它更安全吗)?
- 如果我的方法足够安全,我该如何解决这个问题?