授权 – ASP.NET Web API基本身份验证授权标头
发布时间:2020-05-24 08:07:50 所属栏目:asp.Net 来源:互联网
导读:我有一个BasicAuthenticationAttribute检查请求中的Authorization标头但是尽管它存在,它仍然认为Authorization标头为null: public class BasicAuthenticationAttribute : ActionFilterAttribute{ public override void OnActionExecuting(H
|
我有一个BasicAuthenticationAttribute检查请求中的Authorization标头但是尽管它存在,它仍然认为Authorization标头为null: public class BasicAuthenticationAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
if (actionContext.Request.Headers.Authorization == null)
{
actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized);
}
...
如果我检查actionContext.Request.Headers,我可以看到列出的授权: {Connection: Keep-Alive
Accept: */*
Accept-Encoding: gzip,deflate
Accept-Language: en-gb
Authorization: REDACTED_BUT_PRESENT==
Host: localhost:44300
Referer: https://localhost:44300/
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3; .NET4.0E)
}
更新 我刚刚检查了完整的请求标头,它们看起来像这样……我可以在第一部分看到Authorization标头,但第二部分中的Authorization标头显然为null. request.Headers {Connection: Keep-Alive
Accept: */*
Accept-Encoding: gzip,deflate
Accept-Language: en-gb
Authorization: REDACTED_BUT_PRESENT==
Host: localhost:1734
Referer: http://localhost:1734/
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3; .NET4.0E)
}
base {System.Net.Http.Headers.HttpHeaders}: {Connection: Keep-Alive
Accept: */*
Accept-Encoding: gzip,deflate
Accept-Language: en-gb
Authorization: VXNlcjpQYXNzd29yZA==
Host: localhost:1734
Referer: http://localhost:1734/
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3; .NET4.0E)
}
Accept: {*/*}
AcceptCharset: {}
AcceptEncoding: {gzip,deflate}
AcceptLanguage: {en-gb}
Authorization: null
CacheControl: null
... removed for brevity ...
Warning: {}
解决方法如果您对此感到困惑,可以使用以下命令获取标题:var header = request.Headers.FirstOrDefault(h => h.Key.Equals("Authorization"));
但不是通过 var header = request.Headers.Authorization; (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – ASP.NET MVC 3和App_Code文件夹
- .net – ReportViewer 2010无法评估表达式
- asp.net dropdownlist – 在db值之前添加空行
- asp.net-mvc – MVC ELMAH和SQL Azure
- asp.net-mvc-3 – outputcache mvc3只注销了用户缓存
- asp.net-mvc – MVC 4 Code First属性上的ForeignKeyAttrib
- asp.net-mvc – 准备我的ASP.NET/MVC网站使用SSL?
- 用于XmlHttpRequest的WebAPI的CORS
- asp.net-mvc – 为缺少的ASP.Net MVC控制器更正404消息
- 为什么我不能在ASP.net MVC中使用服务器控件?
推荐文章
站长推荐
- ASP.NET MVC中的runat =“server”标签的状态是什
- asp.net-mvc – Url.Action with RouteValueDict
- asp.net – 没有使用WebApi委托处理程序分配内部
- asp.net – 使用MVC2的AJAX请求中的CSRF保护
- asp.net – 如何使用JQuery与母版页?
- asp.net-mvc – 向RouteValueDictionary添加复杂
- asp.net-mvc – asp.net mvc数据库交互验证
- 有没有办法通过ASP.NET和app_offline.htm来显示图
- asp.net – 如何使一个TextBox控件是多行不可调整
- asp.net-mvc – System.NotSupportedException:
热点阅读
