ASP.NET:从另一个应用程序读取Cookie
我们有几个web应用程序。当我们运行其中任何一个时,我们输入用户名和密码,一些cookie(用户id)已发送到客户端计算机。当我们运行另一个应用程序时,我们应该能够检查我们是否已经登录到我们的一些应用程序中,如果已经登录,我们将自动登录到其他应用程序,而无需输入用户名和密码 似乎我们应该在其他应用程序中搜索cookie,以检查它们是否存在。据我所知,cookies存在于特定web应用程序的上下文中,我不确定是否可以在其他应用程序中检查它们的存在ASP.NET:从另一个应用程序读取Cookie,asp.net,cookies,Asp.net,Cookies,我们有几个web应用程序。当我们运行其中任何一个时,我们输入用户名和密码,一些cookie(用户id)已发送到客户端计算机。当我们运行另一个应用程序时,我们应该能够检查我们是否已经登录到我们的一些应用程序中,如果已经登录,我们将自动登录到其他应用程序,而无需输入用户名和密码 似乎我们应该在其他应用程序中搜索cookie,以检查它们是否存在。据我所知,cookies存在于特定web应用程序的上下文中,我不确定是否可以在其他应用程序中检查它们的存在 如何解决此问题?如果您的web应用程序托管在同一域
如何解决此问题?如果您的web应用程序托管在同一域的子域中(例如
exchange.contoso.com
和mail.contoso.com
),则可以通过将对象的“domain”属性设置为.contoso.com
,轻松地在子域之间交换cookies:
Response.Cookies["auth"].Domain = ".contoso.com";
希望这能有所帮助。您无法从其他网站读取cookie的可能副本。您似乎正在寻找单点登录。@tesick此cookie将与给定的HTTP请求一起可用,就像任何其他cookie一样:
var val=request.Cookies[“auth”].Value
。我使用以下代码添加了具有域的cookie:HttpCookie accessTokenCookie=new HttpCookie(“access\u token”,TokenId);accessTokenCookie.Domain=“.Concert.ru”;添加(accessTokenCookie);但是,它不会显示在cookies列表中。怎么了?域名应该是真的吗?我的意思是不喜欢,例如:你好。@tesicg它应该是,还有下一个请求。尝试将“Expires”属性设置为将来的一个月。是的,域名必须是您用来请求网站的名称(.concert.ru
,我猜)。还有一个问题-如何删除具有域范围的cookie?我这样删除它们:var accessTokenCookie=newhttpcookie(“access_token”);accessTokenCookie.Expires=DateTime.Now.AddDays(-1);response.Cookies.Add(accessTokenCookie);