为启用远程会话状态,我们需要向下面这样配置web.config文件
<system.web>
<sessionState mode="StateServer" stateConnectionString="tcpip=Mymachine:42424"/>
</system.web>
注意mode属性是区分大小写的。stateConnectionString属性格式如下面所示
stateConnectionString=“tcpip=server:port”
服务器既可以是ip地址,也可以是计算机名称。对于后一种情况,字符串中不支持非ascii字符。最后要注意,端口号是不可以省略的。
注意:状态服务器不会为请求者设置任何身份验证障碍。这表明能够访问网络的用户可以自由的访问会话数据。为保护会话状态应确保其只能接受来自web服务器计算机的访问。为此,我们可以使用防火墙、IPSec策略或者网络安全10.x.x.x,这样,外部攻击者便不能直接访问了。另一个与安全性相关的应对策略是修改默认的端口设置。为修改端口,在web.config文件中设置是不够的,还需要修改相应注册表
HKEY_LOCAL_MECHINE\SYSTEM\Current-ControlSet\Services\aspnet_state\parameters下的Port项。
PS:默认情况下,状态服务器只监听本地连接。如果状态服务器和web服务器是不同的计算机,我们需要启用远程连接。为此,我们需要编辑另一个注册表项,即
AllowRemoteConnection(跟上面的Port位于同一结点),将其设置为一个非零值。
时间: 2024-12-29 11:39:37