2012-11-30 34 views
1

我有一个MVC 3应用程序在两个不同的域上为请求提供服务。 firstdomain.com的请求来自iframe,对seconddomain.com的请求来自正常的浏览器窗口。我需要在iframe中使用无Cookie会话,但希望在正常浏览器中保留基于Cookie的会话。如何根据ASP.NET中请求的域设置cookieless会话?

通常会话类型在web.config通过设置以下确定:

<system.web> 
    ... 
    <sessionState cookieless="UseUri"/> 
    ... 
</system.web> 

但是这也适用于每个请求而不管结构域组成。有可能在服务器上有两个站点副本,每个域有一个副本,并且每个副本对于sessionState Cookieless设置都有不同的值,但我想避免这种情况的原因有很多。在运行Web应用程序的单个实例时,是否有方法根据请求的域切换此功能?

回答

0

你可以将它们分成独立的项目,每个项目都有自己的web.config。这是一个比两个单独的实例运行更好的想法。

只是出于好奇,为什么cookie?缓存或会话可能会更好。

+0

这是一个跨域的iframe,一些浏览器不喜欢在那个盘子上放置他们的cookie。 :) – Suzuken

+0

啊,我明白了。愚蠢的浏览器不喜欢他们的盘子上的饼干,哈哈。 – IyaTaisho