Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 找不到在请求之前设置的cookie_C#_Asp.net - Fatal编程技术网

C# 找不到在请求之前设置的cookie

C# 找不到在请求之前设置的cookie,c#,asp.net,C#,Asp.net,我正在尝试开发一个简单的单点登录解决方案,使用ashx文件来设置/删除cookie。Net 4.0,C#。 我正在向ashx资源(位于不同的域siteb.com/file.ashx)发出web请求(从sitea.com/)以设置cookie,然后向同一资源(位于siteb.com/file.ashx)发出另一个请求(从sitec.com/)以查看是否存在相同的cookie。不幸的是,它返回为null。当我摆弄它时,我可以在两种情况下都看到cookie(在siteb.com的请求/响应头中) 我不

我正在尝试开发一个简单的单点登录解决方案,使用ashx文件来设置/删除cookie。Net 4.0,C#。 我正在向ashx资源(位于不同的域siteb.com/file.ashx)发出web请求(从sitea.com/)以设置cookie,然后向同一资源(位于siteb.com/file.ashx)发出另一个请求(从sitec.com/)以查看是否存在相同的cookie。不幸的是,它返回为null。当我摆弄它时,我可以在两种情况下都看到cookie(在siteb.com的请求/响应头中)

我不明白的是,它怎么可能不能通过代码获得。我尝试在响应时使用context.Request.Cookies(context来自public void ProcessRequest(HttpContext-context)方法)、HttpContext.Current.Request.Cookies,但没有成功

HttpCookie AuthCookie = context.Request.Cookies["SiteCookie"];


PS:我正在编写代码,即发出请求和检查cookie验证。知道问题出在哪里吗?

Cookie具有域属性,请参阅。因此,您的cookie似乎是为域siteb.com设置的,因此对其他域不可用。

cookie具有域属性,请参阅。因此,您的cookie似乎是为域siteb.com设置的,因此对其他域不可用。

cookie绑定到客户端。根据您的描述(从sitea和sitec请求),听起来好像有两个不同的客户端发出请求。您确定cookie在客户端的这些请求之间以某种方式传递吗?此外,如果这不是出于教育目的,请不要开发自己的SSO解决方案。网站的安全内容没有那么有价值,因此我正在寻找一个不影响安全性的简单sso解决方案。我只是在下面的Tomas回答中添加了一些信息作为评论。顺便问一下,如果我问的话,你会推荐哪第三个部分的SSO解决方案?嗯,这里有WS联盟,它几乎和第一方一样——你有Windows身份基础,这就大大简化了开发。请阅读免费的MS电子书:,所有细节都在那里。谢谢!这听起来像是一个非常冗长的解决方案,但对我和我的需求来说,它可能太难对付了。企业SSO的好处是显而易见的。它打开了您的应用程序与其他应用程序集成的意外可能性。突然间,你对从未想过的情景敞开了心扉。我真的很想把时间花在学习一些新的和有价值的东西上。根据您的描述(从sitea和sitec请求),听起来好像有两个不同的客户端发出请求。您确定cookie在客户端的这些请求之间以某种方式传递吗?此外,如果这不是出于教育目的,请不要开发自己的SSO解决方案。网站的安全内容没有那么有价值,因此我正在寻找一个不影响安全性的简单sso解决方案。我只是在下面的Tomas回答中添加了一些信息作为评论。顺便问一下,如果我问的话,你会推荐哪第三个部分的SSO解决方案?嗯,这里有WS联盟,它几乎和第一方一样——你有Windows身份基础,这就大大简化了开发。请阅读免费的MS电子书:,所有细节都在那里。谢谢!这听起来像是一个非常冗长的解决方案,但对我和我的需求来说,它可能太难对付了。企业SSO的好处是显而易见的。它打开了您的应用程序与其他应用程序集成的意外可能性。突然间,你对从未想过的情景敞开了心扉。我真的很想给你时间学习一些新的和有价值的东西。嗨,我正在尝试从siteb.com域访问siteb.com cookie。。。基本上,siteb.com作为一种服务,将根据cookie的存在情况向其客户端返回true/false。因此,首先我通过调用siteb.com/file.ashx?p=setcookie=>从sitea.com设置cookie,这将在siteb.com上设置cookie并返回true,然后通过调用siteb.com/file.ashx?p=checkcookie=>从sitec.com检查相同的cookie,但返回false。您是否也设置了path属性(您无法访问非其父路径的Cookie):否我没有设置path属性。@xaoil,这很可能是您的问题-文档说明root是默认值,但如果省略,实际设置的值是当前目录的值-因此您以后只能从同一目录或其子目录(而不是其父目录或同级目录)访问该cookie-此外,如果您要更新cookie,请确保再次设置路径,因为它会重置为默认值-事实上,请养成始终设置路径的习惯HI,我正在尝试从siteb.com域访问siteb.com cookie…基本上siteb.com作为一项服务,将根据cookie的存在情况向其客户端返回true/falseo首先,我通过调用siteb.com/file.ashx?p=setcookie=>从sitea.com设置cookie,这将在siteb.com上设置cookie并返回true,然后通过调用siteb.com/file.ashx?p=checkcookie=>从sitec.com检查相同的cookie,但返回false。您是否也设置了path属性(您无法访问非其父路径的Cookie):否我没有设置path属性。@xaoil,这很可能是您的问题-文档说明root是默认值,但如果省略,实际设置的值是当前目录的值-因此您以后只能从同一目录或其子目录(而不是其父目录或同级目录)访问该cookie-此外,如果您要更新cookie,请确保再次设置路径,因为它会重置为默认值-事实上,请养成始终设置路径的习惯