我希望有一个子文件夹,允许匿名用户下载使用Window Authentication保护的ASP.NET Core站点上的文件。我在wwwroot上启用了静态文件(如在app.UseStaticFiles中),但我不知道如何使子文件夹使用匿名安全性。我尝试在子文件夹中使用web.config,但是没有用。我不记得在不使用Core时这很困难,任何帮助都会受到赞赏。
答案 0 :(得分:1)
经过一些额外的研究,这是我到达的解决方案。
就像@Tratcher建议的那样,我在IIS中启用了Anonymous和Windows Auth。
我引用了包Microsoft.AspNetCore.Authentication并将其添加到ConfigureServices中:
services.AddAuthentication(
Microsoft.AspNetCore.Server.IISIntegration.IISDefaults.AuthenticationScheme);
添加MVC时添加了默认授权策略:
services.AddMvc(o =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
o.Filters.Add(new AuthorizeFilter(policy));
});
默认策略意味着我不必在任何地方使用Authorize属性。 但是通过这个解决方案,它打开了" wwwroot"静态文件,所以我需要一个地方来保护一些文件。
为了保护一些子文件夹,我使用了这个middleware solution by Scott Allen扫描请求的路径并按策略授权它们。