2009-07-31 45 views
1

对于为手机提供内容的c#网站项目,我需要使用sesion状态。手机浏览是一个棘手的领域,你不能依靠cookie,因为有些网络只是删除它们,或者一些手机根本不支持它们。是否可以在.NET中以编程方式设置sessionState模式?

.net的无Cookie会话对我来说是完美的解决方案,但它们带有一些缺点。例如,会话开始时的应用程序.net会将用户当前页面本身与AspxAutoDetectCookieSuppor = 1参数重定向,以检查是否支持Cookie。

这对我来说并不理想,因为每个请求都会被重定向至少一次,而搜索引擎不会这样。

我的问题是,如果有任何的方式建立会话状态模式在Global.asax中或HTTP处理程序在会话开始,所以我可以控制它的模式和搜索引擎机器人设置为false

回答

0

你可以尝试检测浏览器代理(因为每个搜索引擎僵尸程序都有它自己的代理版本,这可能很难),并为所有页面使用BasePage类,如果浏览器代理是搜索引擎,则将EnableSessionState设置为false。

+0

虽然它停止在页面上创建sesison,但它不会停止使用参数AspxAutoDetectCookieSupport = 1进行重定向 – nLL 2009-07-31 08:41:52

0

由于Jeff在他的播客中已经提到过,您可以为搜索引擎设置一个专用服务器并将其流量发送给它。这样它可以正确配置为谷歌/等..,并为其他人配置不同。

我知道从管理的角度来看这不是最简单的解决方案,但它是一种选择。

相关问题