Web config 通过配置添加AuthorizationHandler

Web config 通过配置添加AuthorizationHandler,web-config,authorization,asp.net-core-webapi,Web Config,Authorization,Asp.net Core Webapi,在WCF中,您可以使用服务行为中的serviceAuthorization节点,通过web.config添加授权策略。有没有办法通过配置在.NET核心WebAPI中包含一个AuthorizationHandler 为了清楚起见,我试图用web.config中的内容替换Startup.cs中的这一行: services.AddSingleton<IAuthorizationHandler, MyAuthorizationHandler>(); services.AddSingleto

在WCF中,您可以使用服务行为中的
serviceAuthorization
节点,通过web.config添加授权策略。有没有办法通过配置在.NET核心WebAPI中包含一个
AuthorizationHandler

为了清楚起见,我试图用web.config中的内容替换
Startup.cs
中的这一行:

services.AddSingleton<IAuthorizationHandler, MyAuthorizationHandler>();
services.AddSingleton();
web.config仅用于IIS特定的配置。由于.NETCore的跨平台特性,他们放弃了与web配置的耦合以进行应用程序配置

在IIS或IIS Express中托管应用程序时,需要web.config文件。web.config中的设置使ASP.NET核心模块能够启动应用程序并配置其他IIS设置和模块

参考文献

Startup是您进入应用程序的入口点,您可以在json文件中设置一些设置,并让代码基于这些设置添加/更新配置

我的想法是,这样可以避免每次需要添加内容时都需要重新编译,因为配置选项允许您
需要ASP.NET Core 1.1或更高版本

IOptionsSnapshot
支持以最小的处理开销重新加载选项。在ASP.NET Core 1.1中,
IOptionsSnapshot
IOptionsMonitor
的快照,并在监控器触发基于数据源更改的更改时自动更新。在ASP.NET Core 2.0及更高版本中,在请求的生命周期内访问和缓存时,每个请求都会计算一次选项


您的授权处理程序将取决于选项,并根据提供的配置执行其功能。

我的第一个问题是,您为什么认为需要这样做。我问这个问题是为了澄清这不是一个问题,因为在当前状态下,文章的有限细节没有太多上下文可供处理。@Nkosi:我正在创建一个授权组件,可以将其放入组织中的多个服务中。能够在配置中这样做(并且能够将其从配置中删除)是一个需要的行为,因为这就是我们当前的WCF工作方式。这是有意义的。现在我脑子里想的是更新设置json文件中的配置,但需要一些自定义代码才能使用该配置,并且必须停止并重新启动主机,但不能重新编译。@Nkosi:在设置IIS连接的web.config中没有办法这样做?是的。这就是要走的路线。但就像我之前说的。startup是您的入口点,但是您可以在json文件中设置一些设置,并让您的代码根据这些设置添加配置。我的想法是,这样可以避免每次添加内容时都需要重新编译。