授权 – ASP.NET Web API基本身份验证授权标头
发布时间:2020-12-15 22:30:20 所属栏目:asp.Net 来源:网络整理
导读:我有一个BasicAuthenticationAttribute检查请求中的Authorization标头但是尽管它存在,它仍然认为Authorization标头为null: public class BasicAuthenticationAttribute : ActionFilterAttribute{ public override void OnActionExecuting(HttpActionContext
我有一个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 – WS-Federation真正做了什么(深入并通过一个简单
- 使用UpdatePanel单击按钮后更新ASP.NET标签
- asp.net-mvc – 在MVC中使用ViewModels进行POST操作
- asp.net-mvc – 在MVC应用程序中处理Rich Text
- 将文件路径转换为asp.net核心中的URL
- ASP.NET MVC – IsAjaxRequest()实际上意味着什么?
- asp.net – 从SignalR Hub调用方法的问题.调用失败.承诺遭到
- asp.net – ASP .net成员资格的交易
- Ajax请求过程中显示“进度”的简单实现
- 使用ASP.net和VB.net(或C#)从XML文件编辑和删除数据
推荐文章
站长推荐
- asp.net – 为什么我在Web.Release.config XML-D
- 详解ASP.NET Core 2.0 视图引擎(译)
- asp.net-mvc – 如何将复杂对象传递给ASP.NET MV
- 错误处理 – 是否可以在ASP Classic中的try-catc
- 如何自定义Asp.net Identity 2用户名已经采取验证
- ASP.NET Web Api在返回404时返回200 OK
- asp.net – 如何将Enter键与aspx页面上的按钮相关
- asp.net-mvc – mvc将多个参数传递给局部视图
- asp.net-mvc – 扩展实体框架应用程序/多个应用程
- ASP.NET Core 3.0 使用gRPC
热点阅读