我有两个站点,都在同一个域上,但具有不同的子域.
site1.mydomain.com site2.mydomain.com
一旦我对每个网站进行了身份验证,我会查看后续请求中包含的Cookie,并且每个网站的Cookie都相同.
但是,如果我登录到第一个站点,然后导航到另一个站点,我希望我的站点1的cookie与请求一起发送到site2,但事实并非如此.这是我的cookie的属性.
登录到Site1后,此cookie就存在
Name = MySite
Domain =
Has Keys = False
HttpOnly = False
Path = /
Value = 1C41854066B03D8CC5679EA92DE1EF427DAC65D1BA0E672899E27C57245C1F0B7E93AB01B5563363AB4815A8F4BDE9D293FD261E03F8E60B8497ABBA964D8D315CCE1C8DD220C7176E21DC361935CF6
Expires = 1/1/0001 12:00:00 AM
Run Code Online (Sandbox Code Playgroud)
登录到Site2后,这些cookie就存在了.
Name = MySite
Domain =
Has Keys = False
HttpOnly = False
Path = /
Value = C8C69F87F993166C4D044D33F21ED96463D5E4EB41E1D986BF508DA0CBD5C2CA7D782F59F3BC96871108997E899FF7401C0D8615705BDB353B56C7E164D2302EE6731F41705016105AD99F4E0578ECD2
Expires = 1/1/0001 12:00:00 AM
Run Code Online (Sandbox Code Playgroud)
我已经在每个域上设置了域(不会显示在请求cookie中,因为它只在客户端上需要).我确保我的每个表格设置都相同我确保我的机器密钥设置在两个网络配置中是相同的.
我不知道为什么这不起作用.什么是cookie包含客户端将它发送给一个子域而不是另一个子域,因为他们都使用相同的身份验证cookie到目前为止我可以告诉?
如果您想要查看更多信息,请发表评论.我已经在这两天苦苦挣扎了.根据这篇文章,这应该是有效的.
更新: 添加了代码
这是我的身份验证配置文件设置.这用于两个站点.
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn"
defaultUrl="~/Home/Index"
name="MySite"
protection="All"
path="/"
domain="mydomain.com"
enableCrossAppRedirects="true"
timeout="2880"
/>
Run Code Online (Sandbox Code Playgroud)
这是我在Site1中创建cookie的代码.
//Add a cookie that the Site2 …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,在使用该应用程序的过程中,用户可能会点击
virginia.usa.com
Run Code Online (Sandbox Code Playgroud)
至
newyork.usa.com
Run Code Online (Sandbox Code Playgroud)
由于每次用户从一个子域跨越到另一个子域时我不想创建新会话,在多个子域之间共享会话信息的好方法是什么?
在域名"mysite.com"上的一个ASP.NET MVC应用程序中,我正在为特定域写一个cookie,比如".mysite.com".我能够确认浏览器是否接受我的cookie.
然后,从另一个ASP.NET MVC应用程序,说"jmp.mysite.com",我正在尝试读取第一个应用程序设置的cookie.
问题?好吧,我看不懂cookie.我的浏览器说它在那里,但我的网络服务器说不是.
是否有一些特殊的方式来阅读这些类型的饼干?IIS可能不会将它们发送到ASP.NET吗?