Asp.net阻止使用直接网址

时间:2013-04-04 05:59:38

标签: asp.net url redirect url-routing

我在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");

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

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

我google了很多但我无法找到答案。有人知道解决方案吗?

2 个答案:

答案 0 :(得分:1)

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

string email= Session["email"]

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

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

答案 1 :(得分:0)

@ abatishchev / @highwingers指定的答案是正确的,除了一件事情之外,它会起作用。

“会话未存储在浏览器中,但存储在服务器上。”

然而,在主页中从会话中提取电子邮件似乎是去这里的方式。