我已使用 Startup 类在 OWIN Pipeline 中添加了所有可用的中间件,以对项目中的用户进行身份验证。它运行良好。但是如何在运行时启动后将中间件添加到 OWIN Pipeline 中。
这样管理员就可以使用 UI 输入新身份验证服务器的详细信息并按需注册新身份验证服务器,而不会干扰正在运行的应用程序。
实际上,标准owin管道实现并不是为了在运行时修改而设计的。它有两个生命周期阶段:init(管道创建)和running(服务请求)。
解决您的问题的正确且明确的方法是使用支持运行时配置修改的中间件。
在你的情况下:
如果您使用 Kentor.AuthServices lib 进行身份验证,则此支持是开箱即用的。您只需要在启动时注册一个中间件实例,当您修改(添加或删除 IdentityProviders)您最初提供的 KentorAuthServicesOptions 实例时,所做的更改将立即被中间件使用。
如果您必须使用其他组件,您可以通过将现有的身份验证中间件包装到新的中间件中并在内部处理实例来自行构建此支持。 (您可以创建一个处理配置的中间件,并使用每个配置依次调用身份验证中间件……等等。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)