ASP.NET Web API(二):安全验证之使用HTTP基本认证
在前一篇文章ASP.NET Web API一使用初探GET和POST数据中我们初步接触了微软的REST API: Web API。我们在接触了Web API的后就立马发现了有安全验证的需求所以这篇文章我们先来讨论下安全验证一个最简单的方法使用HTTP基本认证。HTTP基本认证原理在HTTP协议进行通信的过程中HTTP协议定义了基本认证过程以允许HTTP服务器对WEB浏览器进行用户身份认证的方法当一个客户端向HTTP服务器进行数据请求时如果客户端未被认证则HTTP服务器将通过基本认证过程对客户端的用户名及密码进行验证以决定用户是否合法。其基本的实现方式是客户端在用户输入用户名及密码后将用户名及密码以BASE64加密加密后的密文将附加于请求信息中如当用户名为Parry密码为123456时客户端将用户名和密码用:合并并将合并后的字符串用BASE64加密并于每次请求数据时将密文附加于请求头Request Header中。HTTP服务器在每次收到请求包后根据协议取得客户端附加的用户信息BASE64加密的用户名和密码解开请求包对用户名及密码进行验证如果用户名及密码正确则根据客户端请求返回客户端所需要的数据否则返回错误代码或重新要求客户端提供用户名及密码。Web API使用HTTP基本认证进行安全验证我们还是基于前一篇文章的示例进行测试。首先我们基于System.Web.Http.AuthorizeAttribute类实现一个HTTP基本认证的类并实现两个方法OnAuthorization和HandleUnauthorizedRequest。添加一个类HTTPBasicAuthorizeAttribute继承于System.Web.Http.AuthorizeAttribute先来实现OnAuthorization。1publicoverridevoidOnAuthorization(System.Web.Http.Controllers.HttpActionContext actionContext)2{3if(actionContext.Request.Headers.Authorization !null)4{5stringuserInfo Encoding.Default.GetString(Convert.FromBase64String(actionContext.Request.Headers.Authorization.Parameter));6//用户验证逻辑7if(string.Equals(userInfo,string.Format({0}:{1},Parry,123456)))8{9IsAuthorized(actionContext);10}11else12{13HandleUnauthorizedRequest(actionContext);14}15}16else17{18HandleUnauthorizedRequest(actionContext);19}20}actionContext.Request.Headers.Authorization.Parameter就是Client BASE64后的字符串我们对其进行反编码后为了测试方便只进行简单的用户验证这里你可以引入自己系统的验证逻辑。同时还要实现HandleUnauthorizedRequest以实现验证失败时继续提示验证代码如下1protectedoverridevoidHandleUnauthorizedRequest(System.Web.Http.Controllers.HttpActionContext actionContext)2{3varchallengeMessage newSystem.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.Unauthorized);4challengeMessage.Headers.Add(WWW-Authenticate,Basic);5thrownewSystem.Web.Http.HttpResponseException(challengeMessage);6}完成了此类后只要在需要启用HTTP基本认证的Controller的类加上此属性即可就像下面这样。我们现在来测试验证过程。当我们再来请求此API时就会提示需要输入用户名和密码。这时使用Fiddler进行抓包查看HTTP Header就会发现了WWW-Authenticate的头。在提供了正确的用户名和密码后我们发现HTTP已将Parry:123456进行BASE64编码后的密文添加在了Request Header里面。提交后成功地请求到了数据如果输入的验证信息不正确还是返回HTTP Status Code为401的未验证状态以继续验证。输入正确的用户信息后请求到的数据。HTTP基本认证的优缺点优点是逻辑简单明了、设置简单。缺点显而易见即使是BASE64后也是可见的明文很容易被破解、非法利用使用HTTPS是一个解决方案。还有就是HTTP是无状态的同一客户端每次都需要验证。针对这种情况我们下一篇文章讨论下第二种验证方式摘要认证digest authentication。觉得文章还行的话就推荐下吧哈哈。源码下载源代码下载

相关新闻

[前端优化]使用Combres合并对js、css文件的请求

[前端优化]使用Combres合并对js、css文件的请求

在前端优化的各种金律铁规中,“减少客户端对资源的请求”都会在其中出现,刚好最近对网站做一些优化,使用了一下Combres组件,有点心得,遂整理成文。 园子中也有几篇Combres组件的介绍,如:Combres…

2026/8/3 19:11:01 阅读更多 →
UE5.5 VR项目UI开发:从交互原理到性能优化的实战指南

UE5.5 VR项目UI开发:从交互原理到性能优化的实战指南

1. 项目概述与核心痛点 最近在UE5.5引擎下折腾一个VR项目,其中一个看似基础但实际暗藏玄机的任务就是修改UI面板。本以为从传统的2D UI设计切换到VR环境,无非是换个地方“贴图”,但真正上手才发现,从交互逻辑、空间定位到性能优化…

2026/8/3 19:11:01 阅读更多 →
Web漏洞扫描工具:核心价值与主流方案解析

Web漏洞扫描工具:核心价值与主流方案解析

1. Web漏洞扫描工具的必要性与核心价值在数字化浪潮席卷各行各业的今天,Web应用已成为企业对外服务的核心窗口。去年某电商平台因未修复的SQL注入漏洞导致百万用户数据泄露的事件,再次印证了安全防护的极端重要性。作为安全防御的第一道防线,…

2026/8/3 19:11:01 阅读更多 →

最新新闻

终极指南:如何用免费开源工具轻松下载Fantia所有内容

终极指南:如何用免费开源工具轻松下载Fantia所有内容

终极指南:如何用免费开源工具轻松下载Fantia所有内容 【免费下载链接】fantiadl Download posts and media from Fantia 项目地址: https://gitcode.com/gh_mirrors/fa/fantiadl 你是否经常在Fantia上发现喜欢的创作者内容,却苦于无法高效保存&am…

2026/8/3 19:52:19 阅读更多 →
DLSS Swapper终极指南:3步掌握游戏画质升级技巧

DLSS Swapper终极指南:3步掌握游戏画质升级技巧

DLSS Swapper终极指南:3步掌握游戏画质升级技巧 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 还在为游戏画面闪烁、帧率不稳而烦恼吗?DLSS Swapper正是你需要的解决方案!这款强大的…

2026/8/3 19:52:19 阅读更多 →
activiti源码简析

activiti源码简析

Activiti架构分析及源码详解 【2023最新Activiti7全网最全】activiti7工作流数据库表详细介绍(25张表) Activiti架构分析及源码详解 第1步: 先创建1个 processInstanceExecutionEntity 第2步: 创建 processInstanceExecutionEntity 的 childExecution…

2026/8/3 19:52:19 阅读更多 →
AnythingLLM OCR技术深度解析:如何实现企业级文档智能识别

AnythingLLM OCR技术深度解析:如何实现企业级文档智能识别

AnythingLLM OCR技术深度解析:如何实现企业级文档智能识别 【免费下载链接】anything-llm Stop renting your intelligence. Own it with AnythingLLM. Everything you need for a powerful local-first agent experience 项目地址: https://gitcode.com/GitHub_…

2026/8/3 19:52:19 阅读更多 →
DirectDraw兼容层:经典游戏在现代Windows系统上的重生解决方案

DirectDraw兼容层:经典游戏在现代Windows系统上的重生解决方案

DirectDraw兼容层:经典游戏在现代Windows系统上的重生解决方案 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_mirrors/d…

2026/8/3 19:52:19 阅读更多 →
Unity AssetBundle实战指南:从打包到热更新的完整工作流

Unity AssetBundle实战指南:从打包到热更新的完整工作流

1. 项目概述:为什么AssetBundle是Unity开发者的必修课? 如果你在Unity项目里做过资源管理,大概率经历过这个场景:游戏安装包体积巨大,每次更新哪怕只改一张贴图,用户都得重新下载整个几百兆甚至几个G的安装…

2026/8/3 19:51:19 阅读更多 →

日新闻

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。…

2026/8/3 0:00:47 阅读更多 →
[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

PC服务器具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构一、前言:具身智能需要“混合算力闭环系统”传统人工智能依赖云端静态数据集训练,不具备物理交互能力,无法适应真实世界的不确定性。具身智能(Embodied…

2026/8/3 0:00:47 阅读更多 →
[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

前言构建机器人、具身智能这类分布式实时系统,通信底座直接决定整套系统的实时性、容错性、组网能力。分布式领域长期存在 4 类经典通信架构:点对点模式、Broker 中间代理模式、广播模式、以数据为中心(DDS)模式。很多开发者疑惑&…

2026/8/3 0:00:47 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/3 4:58:13 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/3 1:53:31 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/3 4:36:35 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/3 13:07:03 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/3 5:19:38 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/3 8:27:36 阅读更多 →