惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
G
Google Developers Blog
有赞技术团队
有赞技术团队
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Blog — PlanetScale
Blog — PlanetScale
罗磊的独立博客
博客园 - 聂微东
V
Visual Studio Blog
博客园_首页
D
DataBreaches.Net
腾讯CDC
I
InfoQ
F
Fortinet All Blogs
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
云风的 BLOG
云风的 BLOG
月光博客
月光博客
Recent Announcements
Recent Announcements
MongoDB | Blog
MongoDB | Blog
C
Check Point Blog

博客园 - Insus.NET

Vue的v-show实践 HTTP Error 404.0 - Not Found Vue3实现拖放式上传 拖放式上传 实现MultipartStreamProvider经Web API上传文档或图片 文件上传和表单字段混合提交 在HttpContext.Current返回null时如何操作 angularjs根据类型动态加载组件 angularjs获取数据服务 扫一扫直连WiFi二维码 User Profile Service 服务未能登录 Visual Studio2026创建Vue项目 安装与配置node.js HTTP Error 403.14 - Forbidden VisualStudio2026回滚上一版本 消息认证码(加强) 网站无法使用插值字符串语法 浏览器自动发送域凭据 企业内小网站兼用Windows验证登录 访问用户控件的函数 onblur事件改为监听处理 将警报消息改为吐司消息 内容有无变化OnBlur即时更新引起的问题与解决 混合式提高用户编辑与操作效率 光标离开文框后即刻更新 WebForm实现Web API JavaScript对GridView删除行后并重新给其数据绑定 把CS值传给JS使用 v2 确认信息confirm由C#后端移至javascript前端 无法发布网站Web Site
HMAC(Hash-based Message Authentication Code)认证示例
Insus.NET · 2026-05-18 · via 博客园 - Insus.NET

HMAC(Hash-based Message Authentication Code)认证从示例中实践

namespace Insus.NET
{
    public static class HmacAuth
    {
        public static string ComputeSignature(string data, string secretKey) 
        {
            var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(secretKey));

            var hash = hmac.ComputeHash(Encoding.UTF8.GetBytes(data));

            return Convert.ToBase64String(hash);
        }
    }
}

View Code

去web.config添加,appSettings,如下高亮一行:
2026-05-18_09-19-21

我在GetDomainUser.aspx.cs修改,
2026-05-18_09-17-09


上截图中#19,是从Web.config获取SecretKey,此key在维护时,可以不定期修改不相同的值。

#23是计算签名。

#25把Identity.Name和签名一起返加呼叫方。

接下来,我需要在Login.aspx页添加与修改,

2026-05-18_09-29-29

红色框框HiddenField存储HMAC签名。

在SignIn事件中,去计算签名并匹配,看看是否相同。
2026-05-18_09-33-37

上截图中,
#50行,从HiddenField取得Identity.Name。
#51,取到签名。
#52,从web.config取到secretKey。
#54,计算签名。
#56,计算出来的签名与从GetDomainUser.aspx计算的签名对比。对比结果相同,说明Identity.Name未被修改过。