Web api在来自不同客户端问题的一些连续调用中表现为“有状态”

时间:2018-11-28 20:00:37

标签: c# session asp.net-web-api

我有一个由移动应用程序使用的Web API。我也可以用适当的参数与邮递员一起复制案件。

这是小提琴手打来的我的邮递员电话:

GET http://localhost/WebApi/api/User/GetAnnouncement?id=22 HTTP/1.1
Content-Type: application/json
ApiKey: someKey
AuthenticationToken: someGuid1
UserId: 6524
DeviceId: someGuid2
LocalDate: 538294155.662561
OsTypeId: 1
LoginToken: someGuid3
CompanyId: 2
cache-control: no-cache
Postman-Token: b863afdd-b04c-4a4d-b473-69d5ecef622e
User-Agent: PostmanRuntime/7.4.0
Accept: */*
Host: localhost
cookie: ASP.NET_SessionId=nk4g3zzfyi0n3xomfw5dxxxx
accept-encoding: gzip, deflate
Connection: keep-alive

我的问题发生在授权操作过滤器中:

    public class BasicAuthorizeAttribute : FilterAttribute
    {

    }

    public class BasicAuthorizeFilter : AuthorizationFilterAttribute
    {
        public override void OnAuthorization(HttpActionContext actionContext)
        {
         //!!!HERE when I debug, in watch I can see already authHeader has value "in some calls"

System.Threading.Thread.SetData( System.Threading.Thread.GetNamedDataSlot("authHeader"), "someValueComingFromRequestHeader" );
        }
    }

在OnAuthorization的开始(请参见代码中的!!! HERE行),我可以在观看此表达式时看到:

System.Threading.Thread.GetData(System.Threading.Thread.GetNamedDataSlot("authHeader"))

具有该值,即使我希望它始终为null。它甚至具有先前客户端的价值。

实际问题是由于“会话”错误混在一起(我的意思是混合的)。

这部分代码在我公司的框架上,因此有些奇怪的错误。 到目前为止,我可以付出很多。请询问任何必要的信息。

可能是什么原因?

我敢问这个问题,因为问题可能很明显。

注意:我有相同的情况,而没有通过代理设置将两部手机连接到我的电脑的情况下进行调试。

0 个答案:

没有答案