asp.net - 如何防止在不登录网站的情况下访问虚拟目录

标签 asp.net iis virtual-directory

我有一个包含一些文件的目录, 我想仅当用户成功登录网站时才允许访问此目录中的文件。 由 aspNet 成员表管理并存储在数据库中的登录用户和密码。

如果该目录位于网站上就很容易,因为它默认受限 但目录的物理路径在网站内 我更喜欢这样,因为这个目录可以从另一个网站访问

如何解决? 谢谢

最佳答案

您应该将 runAllManagedModulesForAllRequests 属性添加到您的 web.config 中的模块标签,如下所示:

<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
...
</modules>
...
</system.webServer>

这会将您的 dotnet 安全性强加于所有文件,例如 word 文档等。然后您可以使用 web.config 中的位置部分保护文件夹,如下所示:

<location path="SomeVirtualDirectory">
    <system.web>
        <authorization>
            <allow roles="admin" />
            <deny users="*" />
        </authorization>
    </system.web>
</location>

关于asp.net - 如何防止在不登录网站的情况下访问虚拟目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21532175/

相关文章:

iis - "405 method not allowed"在 IIS7.5 中为 "PUT"方法

c# - IIS7 向 URL 添加乱码,导致 CSS 文件出现 404

c# - 如何允许 IIS 使用 ASP.NET MVC 项目中的本地数据库?

nginx 将虚拟目录重写为文件

c# - 在 IIS 7.5\C# (.NET v4.0) 中创建嵌套虚拟目录

c# - 带有简单注入(inject)器的插件架构

c# - 我的 Entity Framework 存储库和服务层方法应返回哪些类型的 : List, IEnumerable、IQueryable?

c# - 以编程方式创建 IIS7 虚拟目录

javascript - 如何从数据列表下拉列表中多次选择值并将每次值存储在表中的新行中?

css - 如何让页脚贴在 asp.net 页面上?