C# 是否可以在.net中以编程方式设置会话状态模式?

C# 是否可以在.net中以编程方式设置会话状态模式?,c#,session,mobile-website,cookieless,C#,Session,Mobile Website,Cookieless,对于为手机提供内容的c#web站点项目,我需要使用sesion state。手机浏览是一个棘手的领域,你不能依赖cookies,因为有些网络只是删除cookies,或者有些手机根本不支持cookies net的无cookieless会话对我来说是完美的解决方案,但它们也有一些缺点。例如,会话开始时.net中的应用程序使用aspxautodetectCookiesupper=1参数重定向用户当前页面本身,以检查是否支持Cookie 这对我来说并不理想,因为每个请求至少会被重定向一次,搜索引擎不喜欢

对于为手机提供内容的c#web站点项目,我需要使用sesion state。手机浏览是一个棘手的领域,你不能依赖cookies,因为有些网络只是删除cookies,或者有些手机根本不支持cookies

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

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


我的问题是,当会话启动时,是否有任何方法可以在global.asax或http处理程序中设置会话状态模式,以便我可以控制它的模式并为搜索引擎机器人设置false

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

正如他在播客中所说的,您可以为搜索引擎设置专用服务器,并将其流量路由到该服务器。这样就可以为Google/etc正确配置它,并为其他所有人进行不同的配置


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

虽然它会停止在页面上创建sesison,但它不会停止参数为AspxAutoDetectCookieSupport=1的重定向