0

我正在 asp.net 中创建一个具有登录功能的应用程序。要访问当前用户信息,我将使用重定向功能传递用户电子邮件,例如

Session["email"] = TextBox1.Text;
Response.Redirect("home.aspx?Id=" + Session["email"]);

通过这个我得到我的下一页 home.aspx?Id=example@example.com

在这个 home.aspx 页面中,我从 page_load 函数中获取值,如下所示

string url = HttpContext.Current.Request.Url.AbsoluteUri;
Uri myUri = new Uri(url);
keyid = HttpUtility.ParseQueryString(myUri.Query).Get("Id");

问题是当用户粘贴任何用户的直接网址时,它允许他们访问他们的帐户。是否可以将此类用户重定向到登录页面。

[从登录页面进来的用户只能访问该帐户]

我用谷歌搜索了很多,但我无法找到答案。有谁知道这个的解决方案?

4

2 回答 2

1

在下一页上只需收到这样的电子邮件:

string email= Session["email"]

会话存储在服务器中,您不需要在 URL 中传递它。

检查是否Session["email"]为空/空,如果是则将它们重定向到登录/帐户页面。

于 2013-04-04T06:02:02.530 回答
0

@abatishchev / @highwingers 指定的答案是正确的并且会起作用,除了一件事。

“会话不存储在浏览器中,而是存储在服务器上。”

尽管如此,从主页中的会话中获取电子邮件似乎是这里的方法。

于 2013-04-04T06:12:02.110 回答