所以我做了一个测试,看看当我通过两个授权头(方案基本和持有者)向邮递员发送一个请求到我的api时会发生什么。我创建了一个授权筛选器属性:web api:有两个授权头的请求最后没有结果
public class RestrictAccessToAssignedManagers : System.Web.Http.Filters.AuthorizationFilterAttribute
{
public override bool AllowMultiple
{
get { return false; }
}
public override void OnAuthorization(HttpActionContext actionContext)
{
//Perform your logic here
base.OnAuthorization(actionContext);
}
}
并将此属性分配给我的控制器。
问题是,当我使用这两个授权时,在我的授权过滤器中,请求中的授权标头为空。
这里是从小提琴手请求:
GET http://localhost:2328/api/values HTTP/1.1
Host: localhost:2328
Connection: keep-alive
Authorization: Basic aaa, Bearer bbb
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36
Postman-Token: 0f557417-d0b7-4ca9-7df7-1df1ea0049ad
Accept: */*
Accept-Encoding: gzip, deflate, sdch, br
Accept-Language: en-US,en;q=0.8
我的问题是,为什么同时使用授权头有没有到结束我的授权筛选器属性?
很可能框架拒绝具有多个值的请求标头,因此不填充对象。您必须检查框架源代码才能确定。 – Nkosi
你能建议我应该寻找什么课程吗? –