Gle*_*Bee 2 asp.net directory asp.net-identity
我正在使用ASP.NET 4.5 OWIN标识并尝试阻止所有经过身份验证的用户访问目录.该目录包含原始文件,因此无法将它们包装在ASP LoggedInTemplate标记中.
当我尝试阻止匿名用户访问目录时,它会失败.
我尝试将以下内容添加到主Web.config文件中:
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
<location path="/docs">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
这样做会给服务器500带来错误,并突出显示位置路径="/ docs"行作为错误的来源.这是一个托管解决方案,因此我无法使用更改IIS服务器配置以允许覆盖的选项,但对于遇到此问题的任何人来说,这似乎是一个潜在的解决方案.
我现在已从主web.config中删除了上述内容,并在我要保护的目录中添加了一个单独的web.config文件.新的web.config包含:
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)
这没有任何错误,但允许未经身份验证的用户访问该文件夹,这是我试图阻止的.
任何有关如何解决此问题的文章的任何想法或指示将非常感激.
我的环境的解决方案是使用子目录中的web.config文件,但是为相关文件类型添加自定义处理程序定义.
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
<system.webServer>
<handlers>
<add name="PDFHandler" verb="*"
path="*.pdf"
type="System.Web.StaticFileHandler"
resourceType="Unspecified" />
</handlers>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
然后,Web服务器仅允许经过身份验证的用户访问子目录中的文件.
本文引出了我的解决方案:http://www.primaryobjects.com/CMS/Article112
| 归档时间: |
|
| 查看次数: |
1851 次 |
| 最近记录: |