由于对我们的一些产品进行了渗透测试,当时看起来很容易解决的"容易"问题变得非常棘手.
当然不应该这样,我的意思是,为什么只为当前HTTPContext这个难以产生一个全新的会话?离奇!无论如何 - 我写了一个厚脸皮的小实用工具类来"做它":
(代码格式化/突出显示/ Visual Basic道歉我必须做错事)
Imports System.Web
Imports System.Web.SessionState
Public Class SwitchSession
Public Shared Sub SetNewSession(ByVal context As HttpContext)
' This value will hold the ID managers action to creating a response cookie
Dim cookieAdded As Boolean
' We use the current session state as a template
Dim state As HttpSessionState = context.Session
' We use the default ID manager to generate a new session id
Dim idManager As New SessionIDManager() …Run Code Online (Sandbox Code Playgroud) 我有一个使用表单身份验证和成员资格的网站.用户必须启用cookie才能使用该站点.我被要求更改代码,以便在用户登录时更改会话ID.显然,这将防止会话修复攻击(http://en.wikipedia.org/wiki/Session_fixation).有没有人知道如何在不丢失整个会话的情况下更改会话ID?PHP有一个特定的方法来做到这一点,但我找不到.NET等价物.