C# 将Cookie访问到子域中
我想在一个域下托管多个站点。但目前我正在使用localhost,因此我在etc/hosts文件中添加了以下两行:C# 将Cookie访问到子域中,c#,asp.net,C#,Asp.net,我想在一个域下托管多个站点。但目前我正在使用localhost,因此我在etc/hosts文件中添加了以下两行: 127.0.0.1 something.com 127.0.0.1 orders.something.com IIS中托管有2个应用程序。一个可以使用:orders.com/ordersso浏览,另一个可以使用something.com/SSOSample/浏览 我在something.com/SSOSample/中使用此代码创建了身份验证cookie: FormsAuthenti
127.0.0.1 something.com
127.0.0.1 orders.something.com
IIS中托管有2个应用程序。一个可以使用:orders.com/ordersso
浏览,另一个可以使用something.com/SSOSample/
浏览
我在something.com/SSOSample/
中使用此代码创建了身份验证cookie:
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
"abc",
DateTime.Now,
DateTime.Now.AddMinutes(30), // value of time out property
true, // Value of IsPersistent property
String.Empty,
FormsAuthentication.FormsCookiePath);
string encryptedTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie authCookie = new HttpCookie(
FormsAuthentication.FormsCookieName,
encryptedTicket);
Response.Cookies.Add(authCookie);
所以我登录了这个应用程序。但是,当我浏览orders.something.com/orderss时,我不会得到我的身份验证cookie
这是web.config中的“我的表单”部分:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" enableCrossAppRedirects="true" timeout="2880" domain=".something.com" />
</authentication>
我缺少什么?看起来您的cookie doamin设置不正确 试着这样做:
authCookie.Domain = ".something.com"
请注意域名前面的“.”,这是something.com的任何子域都可以使用的原因。看起来您的cookie doamin设置不正确 试着这样做:
authCookie.Domain = ".something.com"
请注意域名前面的“.”,这使它适用于something.com的任何子域。您仍然需要authCookie.domain=“.something.com”,因为您正在手动设置cookie。当ASP.NET自动延长cookie过期时间时,将使用您的web.config域属性。您仍然需要authCookie.domain=“.something.com”,因为您正在手动设置cookie。当ASP.NET自动延长cookie过期时间时,将使用web.config域属性。