导航

session 过期问题

Posted on 2005-03-05 14:22  兰宝石.NET  阅读(336)  评论(0)    收藏  举报
在web.config中设置如下
<authentication mode="Forms"> <forms name=".ASPXCOOKIEDEMO" loginUrl="login.aspx" protection="All" timeout="30" path="/"> <!-- protection="[All|None|Encryption|Validation]" --> </forms> </authentication>
<sessionState
            mode="StateServer"
            stateConnectionString="tcpip=127.0.0.1:42424"
            sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
            cookieless="false" 
            timeout="3600" 
    />
并启动StateServer服务,并将其设为自动启动。

------------------
属性 说明
loginUrl 指定一个 URL,未授权用户的请求将被重定向到该 URL。该 URL 可以在同一台计算机上或在远程计算机上。如果它在远程计算机上,两台计算机需要对 decryptionkey 属性使用相同的值。
name 用于身份验证目的的 HTTP Cookie 的名称。注意:如果不止一个应用程序要在一台计算机上使用基于窗体的身份验证服务,则每个应用程序应该配置唯一的 Cookie 值。为了避免在 URL 中导致依赖项,ASP.NET 在设置身份验证 Cookie 时将“/”用作 Path 值,这使 Cookie 被发送回站点上的每个应用程序。
timeout 以整数分钟为单位的时间量,超过此时间量,Cookie 将过期。默认值是 30。超时属性是一个变化值,从收到最后一个请求的时间开始计算,它过期 n 分钟。为了避免对性能产生负面影响,也为了避免那些打开了 Cookie 警告的应用程序产生多个浏览器警告,Cookie 在超时时间过半时更新。(这意味着在某些情况下会丢失可能的精度。)
path 用于已发出 Cookie 的路径。默认值为“/”以避免因路径中有不匹配的大小而带来的困难,因为在返回 Cookie 时,浏览器严格区分大小写。共享服务器环境中的应用程序应该使用此指令维持专用 Cookie。(另一种方法是,它们可以使用 API 在运行时指定路径以发出 Cookie。)
protection 用于保护 Cookie 数据的方法。有效值如下所示:
  • All:同时使用数据验证和加密来保护 Cookie。配置的数据验证算法基于 元素。如果三重 DES 可用并且密钥足够长(48 位),则使用三重 DES 进行加密。All 是默认(和建议)值。
  • None:用于仅将 Cookie 用于个性化并且安全要求不高的站点。加密和验证都可以被禁用。尽管以此方式使用 Cookie 需谨慎,但对于使用 .NET Framework 实现个性化的任何方法,此设置提供了最佳性能。
  • Encryption:使用 TripleDES 或 DES 加密 Cookie,但不对 Cookie 进行数据验证。这类 Cookie 容易受到精心选择的纯文本的攻击。
  • Validation:不加密 Cookie 的内容,但验证 Cookie 数据在传输过程中是否未被更改。若要创建 Cookie,验证密钥在缓冲区中与 Cookie 数据连接,并且计算出 MAC 并将其追加到输出的 Cookie。