asp.net-core - IIS 中访问受限的 ASP.NET Core 自定义错误页面
问题描述
我想通过仅在 IIS (10) 中配置来限制对我的 ASP.NET Core 应用程序的访问。这不是问题,因为我只启用“Windows 身份验证”,然后我就可以做到
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\MyDLL.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" >
</aspNetCore>
<security>
<authorization>
<remove users="*" roles="" verbs="" />
<add accessType="Allow" users="user.withaccess />
</authorization>
</security>
</system.webServer>
</location>
这工作正常,但每个没有访问权限的用户只会得到 401 响应并且没有错误页面。通常你可以配置这样的东西:
<location path="." inheritInChildApplications="false">
<system.webServer>
<!-- ... -->
<httpErrors errorMode="Custom" existingResponse="PassThrough">
<remove statusCode="401" subStatusCode="-1" />
<error statusCode="401" subStatusCode="2" prefixLanguageFilePath="" path="401.htm" responseMode="File" />
</httpErrors>
</system.webServer>
</location>
但是自定义错误页面只能由已经可以访问应用程序的用户访问(尝试打开错误页面也会导致未经授权的用户出现 401)。
现在就我而言,目前无法更改 ASP.NET Core 应用程序本身,因此我必须在 IIS 中进行。
我必须配置什么才能提供自定义错误页面,但其他所有内容都受到保护?
解决方案
推荐阅读
- .net - 单元测试 serilog 配置
- javascript - 如何处理客户端层的 JWT?
- amazon-web-services - 面临的问题:扫描发电机数据库
- programming-languages - 为什么要创建逻辑运算符?
- c# - Asp.Net MVC 5 路由没有被击中
- ios - 如何在不花时间的情况下从 iPhone 中获取所有带有图像的专辑?
- mongodb - MongoDB 中的 $pull 运算符
- r - 如何在 fwrite() 中为导出 csv 文件 R 指定编码?
- java - SpringBoot 应用程序中的 sessionFactory 不会创建
- c# - 在 Windows 工作流自定义活动中使用 ICommand