Token在GET请求的Authorization头中传递,如下所示:
Authorization: Bearer <token here>
通过反复试验,我发现头值限制必须在2048左右,因为令牌小于此值的请求会传递到我的ASP.NET应用程序而不会进行任何更改,而令牌较大的请求会删除Authorization头,从而在我的应用程序中触发401。
应用程序已发布到Azure。无论请求是GET还是POST都不重要。
Limit看起来类似于querystring limit,所以我增加了允许的查询字符串,但没有帮助。
IIS版本:8.0(来自响应头)
1条答案
按热度按时间l7mqbcuq1#
默认情况下,头长度限制为65536,这是在
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
注册表中设置的。我在本地计算机和Azure Web App上测试了它。下面是我用来测试的代码:在服务器端,我使用
在客户端,我使用
我可以取回授权参数。
通过反复试验,我发现头值限制必须在2048左右
另一个可能有限制的地方是
headerLimits
配置部分。您可以在此配置部分中为特定头添加长度限制。如果我将此配置添加到 * web.config *.
.我的客户端的请求被阻止,我得到了以下错误:
如果我增加
sizeLimit
以满足请求Authorization
报头的长度,例如2058。请求将被正常执行。所以请检查你是否修改了 * web.config * 文件中的
headerLimits
配置部分。如果是,它将阻止您的请求,如果此头的长度大于限制值。为了解决这个问题,我们可以增加sizeLimit
的值来修改Authorization头的限制。