是否可以根据用户的IP地址以编程方式为用户会话设置会话超时?
示例:如果IP地址在192.0.X范围内,则将会话超时设置为6小时。否则,请保留在web.config中的默认设置(或设置为30分钟)。
据推测,这可以在Global.asax:Session_Start
中完成。现在我可以在会话中使用用户第一个请求的IP地址(允许用户在会话期间更改IP地址)。
ASP.net 3.5,IIS 7
答案 0 :(得分:4)
要测试IP范围,您可以使用:Request.UserHostAddress.StartsWith("192.0.")
然后使用Session.Timeout
属性设置超时。
C#示例:
if(Request.UserHostAddress.StartsWith("192.0."))
{
Session.Timeout = 360; // 6 hours
}
按照建议在Global:Session_Start事件中执行此操作。
答案 1 :(得分:2)
您可以将会话的Session.Timeout属性设置为代码中的默认值。
答案 2 :(得分:0)
您可以在web.config中更改会话超时 在system.web会话状态timeout = 540 />中写入此代码// 6小时
答案 3 :(得分:-1)
我认为Session.Timeout属性设置整个应用程序的超时而不是用户会话。我不认为你可以在一个应用程序中有多个超时。
选项包括两个站点/应用程序,一个用于长超时用户,另一个用于其他用户。
您还可以通过创建会话提供程序或使用完整的自定义方式来处理会话状态来使用自己的会话管理。
另一个选择是将JavaScript添加到long-timeout用户的页面以保持会话处于活动状态。请检查此article