1

我在 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 值设置为零,因此该值无用。

  1. 我应该改用会话状态(即,它更安全吗)?
  2. 如果我的方法足够安全,我该如何解决这个问题?
4

1 回答 1

2

如前所述

您可以通过以下方式将值从一页传递到另一页..

Response.Redirect
Cookies
Application Variables
HttpContext

响应.重定向

放 :

Response.Redirect("Defaultaspx?Name=Pandian);

得到 :

string Name = Request.QueryString["Name"];

饼干

放 :

HttpCookie cookName = new HttpCookie("Name");
cookName.Value = "Pandian"; 

得到 :

string name = Request.Cookies["Name"].Value;

应用程序变量

放 :

Application["Name"] = "pandian";

得到 :

string Name = Application["Name"].ToString();

请参阅此处的完整内容:将值从一个传递到另一个

于 2013-07-07T18:53:38.653 回答