如何在整个网站上保留登录

时间:2012-11-11 06:33:24

标签: c# asp.net session-variables

我在建立网站时遇到了一个非常基本的问题;该网站有10页,问题是,当我登录一次,我怎么能通过其余的页面保持登录?

2 个答案:

答案 0 :(得分:1)

由于这个问题包含asp.net和sesion变量的标签,我不确定你缺少什么。

登录表单:

if (authentaionSuceeded){
   HttpContext.Current.Session["loggedin"]="yes";
} 

在所有其他页面上(退出除外)

if (HttpContext.Current.Session["loggedin"]=="yes"){
   // whatever you do for logged in users.
} 

这是基本的想法。虽然我更喜欢通过extension method/class that provides a type safety and a list of all session variables访问会话变量。答案中的例子是VB,但你可以在c#中做同样的事情。

答案 1 :(得分:-1)

有一些可能的解决方案如下:

  1. Cookie:将会话信息存储在页眉
  2. 中的Cookie中
  3. 隐藏表单字段:在页面表单的某些隐藏字段中维护会话信息
  4. 在每个选项中,您需要在服务器端生成会话密钥(某些加密的唯一密钥),并且在后续请求中,您应该能够验证该会话密钥。最好在每个请求上重新生成一个新的会话密钥,并在一定的时间间隔后使其到期。因此,对于活跃用户,它将继续获取新密钥,但非活动用户会话将会过期。