You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在IIS服务器上为网页设置密码保护

可行存储方案及调用方法

方案1:加密web.config配置节存储(最推荐,适配IIS原生生态)

  • 存储位置:将密码哈希存放在web.config的<system.web><authentication><forms><credentials>节点下,哈希算法建议选择SHA256及以上强度,同时对整个<authentication>配置节执行加密操作,避免配置文件意外泄露导致哈希外泄。
    加密操作可以直接使用.NET Framework自带工具执行,以管理员身份打开CMD运行以下命令即可:
    aspnet_regiis.exe -pe "system.web/authentication" -app "/你的站点名称"
  • 网页侧调用方法:所有比对逻辑在服务端执行,无需手动读取配置文件,直接调用ASP.NET原生FormsAuthentication.Authenticate(用户名, 输入密码)方法即可自动完成哈希校验,校验通过后再跳转至受保护页面。

方案2:站点根目录外独立文件存储(适合多站点共享、哈希数量多的场景)

  • 存储位置:将加盐后的密码哈希存放在站点根目录之外的路径,比如C:\iis-secrets\your-site-hashes.json,不要放在站点的wwwroot目录下,避免被外部直接访问下载。同时需要给站点对应的应用程序池身份授予该文件的只读权限。
  • 网页侧调用方法:在服务端代码(C#/VB.NET等)中直接读取该文件内容,对用户提交的密码做相同加盐、哈希运算后,和文件中存储的哈希值做比对即可,绝对不要把存储的哈希值返回给前端浏览器。

方案3:IIS基本身份验证配合Windows本地用户(无需自己开发校验逻辑)

如果不需要自定义登录页,可以直接使用IIS自带的基本身份验证功能,不需要自己存储哈希:

  • 直接在Windows服务器上创建仅限网站访问的本地用户,设置对应密码,IIS会自动完成密码校验和权限管控,密码哈希由Windows系统原生安全机制存储,不需要自己维护。

注意事项

  • 存储密码哈希时必须加盐,不要直接对原始密码做哈希运算,避免被彩虹表破解
  • 所有哈希校验逻辑必须在服务端执行,禁止将存储的哈希值暴露给前端
  • 如果选择存在web.config中,必须对对应配置节加密,IIS运行时会自动解密,不影响正常使用

IIS配置界面参考

内容的提问来源于stack exchange,提问作者Ibrahim Timimi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 19:18:00