缺少Cookie导致401

时间:2014-06-05 12:57:12

标签: web-services iis cookies session-cookies http-status-code-401

我正在为IIS创建一个(表单)身份验证模块(HTTPModule),它从登录页面读取身份验证,设置cookie并重定向。一切都适用于所有网站和子应用程序。因为该模块还保护web服务,所以我构建了一个也读取授权头的部分。因为这些服务也应该从其他工具访问。

现在我已经到了实际保护web服务的地步,一切都很棒,并且使用auth标头来处理请求我确实可以总是访问web服务但是我只能在标题处于活动状态时访问它(并且在我得到每个请求之后)另一个饼干)。

如果我尝试使用正常登录访问它,我也可以访问具有相同保护的其他站点,然后我将重定向回登录页面:S。我真的不明白为什么会这样。

PS HttpContext.Current.Request.IsAuthenticated在我的模块中访问服务时始终为false,但我的代码是:

 if(!HttpContext.Current.Request.IsAuthenticated){
        if(Forms["Username"] != null){
          //do authenticatoin & setCookie and Principle
        }
 }else{
     if(AuthHeader is there){
         //do authenticatoin & setCookie and Principle
     }

 }

当然,现在每个请求都会对每个请求进行身份验证并设置原则。但为什么哦,为什么它看不到(发送)我的cookie,而其他应用程序确实看到它? (使用完全相同的模块)

OnAuthenticateMethod也不会收到FormsAuth票证/ cookie,但会收到我设置的其他Cookie。

我已检查过的事情: * web.config授权是正确的。 *机器密钥设置为cookie。 * Cookie名称相似 * .ASPXAUTH cookie不会向OnAuthenticateMethod发送,但它确实会被浏览器在Cookie标头中发送。

我很遗憾为什么会这样。

0 个答案:

没有答案