ASP.NET Core 2.0 Win Auth 主站点,但子文件夹为匿名
ASP.NET Core 2.0 Win Auth main site, but sub-folder as anonymous
我想要一个子文件夹,允许匿名用户在使用 Window 身份验证保护的 ASP.NET 核心站点上下载文件。我在 wwwroot 上启用了静态文件(如 app.UseStaticFiles),但我看不到如何使子文件夹使用匿名安全性。我尝试在子文件夹中使用 web.config ,但没有用。我不记得在不使用 Core 时这会很困难,感谢任何帮助。
经过一些额外的研究,这是我得出的解决方案。
就像@Tracher 所建议的那样,我在 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 扫描请求的路径并按策略授权它们。
我想要一个子文件夹,允许匿名用户在使用 Window 身份验证保护的 ASP.NET 核心站点上下载文件。我在 wwwroot 上启用了静态文件(如 app.UseStaticFiles),但我看不到如何使子文件夹使用匿名安全性。我尝试在子文件夹中使用 web.config ,但没有用。我不记得在不使用 Core 时这会很困难,感谢任何帮助。
经过一些额外的研究,这是我得出的解决方案。
就像@Tracher 所建议的那样,我在 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 扫描请求的路径并按策略授权它们。