我在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了很多但我无法找到答案。有人知道解决方案吗?
答案 0 :(得分:1)
在下一页上只需收到这样的电子邮件:
string email= Session["email"]
会话存储在服务器中,您无需在URL中传递它。
检查Session["email"]
是否为空/空,如果是,则将其重定向到登录/帐户页面。
答案 1 :(得分:0)
@ abatishchev / @highwingers指定的答案是正确的,除了一件事情之外,它会起作用。
“会话未存储在浏览器中,但存储在服务器上。”
然而,在主页中从会话中提取电子邮件似乎是去这里的方式。