在家里,我有一个运行在 Windows Server 2012 和 IIS8(无 AD)上的小型服务器。我希望服务器上的某些用户能够访问共享文件目录,以便他们可以通过 https 下载它。
我在 IIS 管理器中创建了一个网站,将基本目录设置为共享文件夹,启用了该网站的目录浏览,禁用了匿名身份验证并启用了 Windows 身份验证。互联网访问和带有签名证书的 https 也已配置并正常运行。
到目前为止一切顺利。当我浏览我的服务器时,系统会要求我提供凭证(很好)。不幸的是,全部的本地服务器用户被允许访问该文件夹,即使是内置的来宾帐户(不好)。现在我想限制一些我放在名为 的组中的用户的访问权限WebFiles Users
。所以我尝试了我从网络编程中学到的东西 - 我向 添加了authorization
标签,web.config
现在看起来像这样:
<configuration>
<system.web>
<authorization>
<allow roles="MyServer\WebFiles Users" />
<deny users="*" />
</authorization>
</system.web>
<!-- this was created by the IIS manager: -->
<system.webServer>
<directoryBrowse enabled="true" />
</system.webServer>
</configuration>
但它不起作用。我仍然可以用访客用户身份访问网站。有人能告诉我我做错了什么吗?
答案1
system.web 适用于托管 asp.net 内容,而不是静态文件。
您想改用 system.webserver。节点:
<configuration>
<system.webServer>
<security>
<authorization>
应该涵盖这一点。
在 IIS 管理器中,不要使用 ASP.NET 部分,而是使用 IIS 部分,然后使用“授权规则”图标。