Web services 丢失的Cookie导致401

Web services 丢失的Cookie导致401,web-services,iis,cookies,session-cookies,http-status-code-401,Web Services,Iis,Cookies,Session Cookies,Http Status Code 401,我正在为IIS制作一个(表单)身份验证模块(HTTPModule),它从登录页面读取身份验证,设置cookie并重定向。所有的作品伟大的所有网站和子应用程序。因为该模块还保护Web服务,所以我在其中构建了一个部分,该部分还读取授权头。因为这些服务也应该从其他工具访问 现在我要说的是,我实际上是在保护一个Web服务,这一切都很好,有了请求的auth头,我确实可以随时访问Web服务,但我只能在头处于活动状态的情况下访问它(每次请求后,我都会得到另一个cookie) 如果我尝试使用我的正常登录访问它,

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

现在我要说的是,我实际上是在保护一个Web服务,这一切都很好,有了请求的auth头,我确实可以随时访问Web服务,但我只能在头处于活动状态的情况下访问它(每次请求后,我都会得到另一个cookie)

如果我尝试使用我的正常登录访问它,我也会访问其他受相同保护的站点,然后我会被重定向回登录页面: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,而其他应用程序却看到了它?(使用完全相同的模块)

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

我已经检查过的东西: *web.config授权是正确的。 *机器钥匙是为cookies设置的。 *Cookie名称相似 *.ASPXAUTH cookie不会通过OnAuthenticateMethod发送,但它会通过浏览器在cookie标头中发送


我不明白为什么会发生这种情况。

OnBeginRequest似乎没有HttpContext.User,但确实包含cookie,但在OnAuthentication上cookie消失了:S.一直在执行一些手动FormsTicket.Decrypt,而且似乎webservice应用程序没有使用机器密钥:S