使用 ASP.NET 的 IIS 中的自定义 401 页面

2024-01-25

我有一个面向互联网的 ASP.NET 网站,我想通过 Windows 身份验证来保护该网站的安全。我将 web.config 文件设置为:

<system.web>
 <authentication mode="Windows" />
 <authorization>
    <allow users="*"/>
    <deny users="?"/>        
 </authorization>

然后,我在 IIS 7.5 中禁用了匿名访问并启用了 Windows 身份验证。

这会导致显示有关我的 Windows 凭据的提示框,但是单击“取消”会显示标准的 401 错误页面。我想显示一个静态 HTML 文件来代替此消息,但是我无法使其正常工作,并且我尝试了各种设置的组合,例如:

<httpErrors errorMode="Custom" existingResponse="Replace" lockAllAttributesExcept="errorMode"> <error statusCode="401" prefixLanguageFilePath="c:\inetpub\custerr" path="MyCustom401.htm" /> </httpErrors>

and

<customErrors mode="Off" defaultRedirect="ErrorPage.aspx">
    <error statusCode="401" redirect="MyCustom401.aspx" />
</customErrors>

我希望发生的是,任何输入正确 Windows 凭据的人都可以正常访问该网站,但那些输入无效或详细信息的人可以查看自定义 HTML 页面。

有人能指出我正确的方向吗?

Thanks!


需要确保的一件事是您允许匿名用户访问包含错误文件的路径,否则他们将无法获得错误页面。例如,如果您的错误文件位于目录(错误)中,这里是一个配置文件,它应该为您提供预期的结果。首先,它禁用所有站点的匿名访问,但随后打开“errors”文件夹:

<configuration>
    <system.webServer>
        <security>
            <authorization>
                <add accessType="Deny" users="?" />
            </authorization>
        </security>
        <httpErrors errorMode="Custom">
            <error statusCode="401" subStatusCode="2" path="/errors/unauthorized.aspx" responseMode="ExecuteURL" />
        </httpErrors>
    </system.webServer>

    <location path="errors">
        <system.webServer>
            <security>
                <authorization>
                    <clear />
                    <add accessType="Allow" users="*" />
                </authorization>
            </security>
        </system.webServer>
    </location>
</configuration>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ASP.NET 的 IIS 中的自定义 401 页面 的相关文章

  • Web.config appSettings:复杂值

    Web config 的 appSettings 部分只能存储这样的简单字符串吗
  • 如何使用PowerShell脚本远程启动/停止IIS 6.0/7.0?

    我有两台服务器服务器 A 和服务器 B 我想使用 Powershell 脚本从服务器 B 远程停止服务器 A 最简单的方法之一就是使用命令行执行PsExec http www microsoft com technet sysinterna
  • “固定请求数”后应用程序池回收

    IIS的应用程序池设置为 固定请求数 后回收有什么影响 假设这个数字是100 第99个人连接到我的网站 那么第100个人来了 就会触发应用程序池回收 这是否意味着会话 1 99 的所有会话信息都将丢失 进程内会话将在应用程序池工作进程重新启
  • ASP.NET MVC2:“System.MissingMethodException:没有为此对象定义无参数构造函数。”

    我目前正在尝试修改默认 MVC 项目的注册组件 以适应我的项目 为此 我修改了 RegisterModel Register aspx 和 AccountController 我可以很好地查看寄存器视图 但是当我提交时 我在标题中收到错误
  • 使用 PHP/COM/ADSI/LDAP 更改 AD 密码

    我已经被这个问题困扰了好几天了 我尝试了各种解决方案均无济于事 请帮忙 Problem 我们有两个域控制器 它们不属于我们的管理范围 我们能够通过端口 389 上的 LDAP 进行连接 但无法通过端口 636 安全连接 我们正在开发一个系统
  • 在类库项目中使用资源.resx文件

    我在类库项目中使用了资源文件 resx 文件来存储一些错误消息 当我将 resx 文件的 构建操作 设置为 嵌入资源 并部署时 它工作正常 但我想将资源文件与dll分开 因为将来我可能需要更改resx文件中的错误消息 而无需重新编译类库项目
  • ASP.NET Web Api 的事件发布者

    我已经开始使用微服务 我需要创建一个事件发布机制 我计划使用 Amazon SQS 这个想法很简单 我将事件存储在与聚合相同的事务中的数据库中 如果用户更改他的电子邮件 事件UserChangedEmail将被存储在数据库中 我还有事件处理
  • 如何在asp.net中按下按钮后刷新Gridview

    我正在尝试制作一个简单的图书馆数据库 我在网格视图中列出搜索结果 然后有一个文本框和一个按钮 用户输入 isbn 并单击贷款按钮 然后 如果有足够数量的物品 itemNumber gt 0 则由用户借出 这是用户界面的屏幕截图 我的问题是
  • 由于“请求缓慢”限制,Azure 网站不断重新启动

    我在西欧和标准模式下设置了一个天蓝色网站 世界标准时间 UTC 今天 2014 年 1 月 30 日凌晨 03 00 突然开始不断重新启动应用程序池 关闭原因是托管环境 我在 eventlog xml 中有很多这样的事件
  • 如何在服务器上保存用户凭据以在后台运行查询

    背景 我们有一个 ASP NET Silveright Web 应用程序 silverlight客户端显示用户 图形形式的特定数据 它从服务器请求数据 问题 由于服务器必须执行底层数据库查询 获取这些数据的成本很高 因此客户端必须等待 优化
  • asp.net cookie、身份验证和会话超时

    我有一个使用表单身份验证的 asp net 网站 我在会话中保留一些信息 例如用户名 用户 ID 电子邮件等 我通过在身份验证 cookie 上设置较长的到期日期来允许用户保持登录网站的状态 因此 当用户仍处于身份验证状态时 会话过期的情况
  • 本地权威声明和外部提供商声明的混淆

    我正在创建一个简单的 WebApi 它允许用户与 Facebook 连接 当我从 facebook 获取 accessToken 时 我调用 RegisterExternal 创建 Asp Net Identity 记录并存储令牌中的声明
  • 如何检查浏览器的JavaScript是否启用

    我的应用程序依赖于 JavaScript 我想检查客户端浏览器的 JavaScript 是否启用 如果关闭则发出警报消息 其实有一个
  • 使用 SQL Server 2008 的 IIS 应用程序池身份帐户配置集成安全性

    我的网站有以下配置 两个 Web 前端 例如机器名称 WFE1 和 WFE2 1 SQ 1 个 SQL Server 数据库集群 例如机器名称 DBCluster 所有计算机都位于运行 Windows 2008 R2 Enterprise
  • Gridview rowdatabound访问数据项vb

    我正在尝试将 ImageUrl 指向 GridView 中模板字段中的图像 但不断收到错误 你调用的对象是空的 在这一行 Dim imagePath As String rowView image path 我以前从未在 GridView
  • 检查 asp.net 文本框中的脚本

    我们希望阻止用户在文本框中输入 html 或 javascript 我们可以解析输入并检查尖括号 想知道是否有更好的方法来做到这一点 我发现用编码的尖括号替换尖括号可以解决大多数问题 这里有一个参考 http ha ckers org xs
  • IIS应用程序池回收+quartz调度

    我正在 IIS 7 5 上运行一个 Web 应用程序 它需要偶尔回收 否则内存使用情况会失控 这是我正在研究的问题 当它回收时 它实际上不会运行 直到另一个请求到来 而quartz不会运行 有没有办法让IIS在回收应用程序池后立即自动启动1
  • ASP.NET 验证控件和 Javascript 确认框

    我有一个使用 NET 服务器端输入验证控件的页面 此页面还有一个 javascript 确认框 在提交表单时会触发该确认框 当前 当选择 提交 按钮时 会出现 javascript 确认框 一旦确认 就会触发 ASP NET 服务器端验证控
  • 访问 ascx 文件中的母版页控件

    我有一个母版页文件 其中包含 2 个面板控件中的 2 个菜单 我还使用控件来检查用户是否登录并获取用户类型 根据我想要显示 隐藏面板的类型 控件本身不在母版页中引用 而是通过 CMS 系统动态引用 我想在用户控件中使用findcontrol
  • 逆向工程 ASP.NET Web 应用程序

    我有一个 ASP NET Web 应用程序 我没有源代码 该 bin 包含 10 个程序集和一个 compiled 文件 我在 App Code dll 上使用 Reflector 它向我显示了类和命名空间之类的东西 但它太混乱了 有没有什

随机推荐

  • 配置温莎城堡和通用

    这是我在 Global asax 中的代码 WindsorContainer container new WindsorContainer container Register Component For typeof IRepositor
  • Scrapy中不同start_url的不同解析函数

    Scrapy可以为每个start url设置不同的解析函数吗 这是一段伪代码 start urls http 111sssssssss com http 222sssssssssssss com http 333sssssssssss co
  • 如何计算 git 树哈希?

    对于 Nodejs 项目 我需要确定文件夹的哈希值来检查版本 实际上 我制作了一个脚本来测试我的代码 没有文件系统 直接使用 git api 进行测试 但它有一半的时间有效 A1 https api github com repos zes
  • MySQL 按特定 24 小时间隔进行分组

    我有一个 MySQL 表 每行都有时间戳值 我的目标是对金额列的值求和 并按自定义 24 小时间隔 每天 05 30 00 开始 进行分组 input timestamp amount 2015 01 19 08 30 12 4 2015
  • 如何在数学图中画三角形?

    如何在显示 X 轴和 Y 轴的数学图表中绘制三角形 要使用 ActionScript2 绘制形状 您可以使用moveTo and lineTo MovieClip 对象的方法 您可以指定线条颜色和粗细线条样式 或者使用以下方法制作实体形状开
  • 如何从 CMake 中隐藏 Visual Studio 中的目标

    我正在使用 CMake 生成 sln 我想使用 Google Test 并使用此类代码来添加新测试 add executable my test test my test cpp target link libraries my test
  • 在数组中查找本地分钟

    有没有一种简单的方法来确定值数组的局部最小值和最大值 例如 Element Value Note 1 1 2 3 3 5 4 6 5 7 max 5 5 6 4 min 7 6 8 9 9 10 max 10 8 11 7 12 5 min
  • 动态获取 Android 设备的供应商 ID

    我想要得到Vendor ID通过我的代码访问我的 Android 设备 我读过这个 http developer android com tools device html http developer android com tools
  • 为什么在 hashcode() 实现中选择 31 来进行乘法? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么Java的String中的hashCode 使用31作为乘数 https stackoverflow com questions 299304 why does javas hashcode i
  • 使用一对多 JOIN 进行更新(多列)

    我遇到了一个问题 我不确定这是否是预期的行为 我在网上搜索了答案 但我所能找到的只是关于最后更新的行以及查询后的值是多少 我知道在这种情况下不存在订单之类的东西 并且您无法提前确定其价值是多少 但就我而言 我正在更新不同的列 因此覆盖以前的
  • Java 服务器的语言支持在过去 3 分钟内崩溃了 5 次。服务器不会重新启动

    添加 gitlab 后 我的 flutter 项目无法运行 代码无法运行 Android 应用程序 所以 我重新启动我的 Linux 电脑并再次尝试 现在它显示了此错误消息 Java 服务器的语言支持在过去 3 年内崩溃了 5 次 分钟 服
  • 是否可以为特定目标指定`panic = "abort"`?

    如果我指定panic像这样 它适用于所有目标 profile release panic abort 我想指定panic abort 仅适用于target arm linux androideabi 您需要添加一个 cargo config
  • 使用外部链接的CSS将边框应用于html元素[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 为什么我在通过外部链接的 CSS 文件设置 HTML 元素边框时遇到困难 帮助 我的 HTML 中的代码 section clas
  • 以 XSS 安全方式替换 AJAX 响应中的选项

    从内部succcess我的 AJAX 响应的方法 我的目标是以 XSS 安全的方式执行以下操作 删除所有现有的options在选择框中 替换同一选择框中的选项 这是删除和替换选项的一种方法 但我对这种策略完全安全的 XSS 没有很高的信心
  • 如何自行停止服务?

    我在一项活动中启动一项服务 然后我希望该服务在一段时间后自行停止 我在服务中调用了 stopSelf 但它不起作用 如何让服务自行停止 通过说 不起作用 我猜你的意思是onDestroy 未调用服务的方法 我也有同样的问题 因为我bound
  • 如何以这种方式将数据粘贴到列和行中

    我有一些标签数据要根据用户定义的输入值以列和行格式打印 它们是基于 3 个主要输入的条件 1 要跳过的起始标签数量 2 每行标签数量 3 每页行数 我有一份数据表 其中 A 列中包含数据 B 列中包含要打印的份数 我在希望打印的页面中附加了
  • ruby 的难忘名字生成器 gem

    在我自己动手并开始拿出字典之前 有谁知道 ruby gem 可以生成适合应用程序密钥的难忘名称 我需要一些可发音的东西 以便我可以为用户提供唯一的电子邮件地址来提交内容 我喜欢 Heroku 为其应用程序命名的例子 floating sky
  • Qt keyPressEvent、“Hold”和 keyReleaseEvent 处理按钮/鼠标点击

    我正在编写一个 Qt 程序来模拟一个硬件 我想模拟按钮按下 按住和释放事件 在我的应用程序中 我想处理键盘和鼠标点击的输入 以使用户 即我 方便 我注意到一些奇怪的行为 但我不明白 该应用程序使用 QPushButtonautoRepeat
  • const char 指针分配的内存在哪里? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的字符串文字是在静态内存中创建的吗 https stackoverflow com questions 349025 is a string literal in c created in st
  • 使用 ASP.NET 的 IIS 中的自定义 401 页面

    我有一个面向互联网的 ASP NET 网站 我想通过 Windows 身份验证来保护该网站的安全 我将 web config 文件设置为