我有一个由移动应用程序使用的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。它甚至具有先前客户端的价值。
实际问题是由于“会话”错误混在一起(我的意思是混合的)。
这部分代码在我公司的框架上,因此有些奇怪的错误。 到目前为止,我可以付出很多。请询问任何必要的信息。
可能是什么原因?
我敢问这个问题,因为问题可能很明显。
注意:我有相同的情况,而没有通过代理设置将两部手机连接到我的电脑的情况下进行调试。