在运行时向 OWIN 管道注册新的中间件,无需重新启动应用程序

2023-12-22

我已使用 Startup 类在 OWIN Pipeline 中添加了所有可用的中间件,以对项目中的用户进行身份验证。它运行良好。但是如何在运行时启动后将中间件添加到 OWIN Pipeline 中。 这样管理员就可以使用 UI 输入新身份验证服务器的详细信息并按需注册新身份验证服务器,而不会干扰正在运行的应用程序。


实际上,标准owin管道实现并不是为了在运行时修改而设计的。它有两个生命周期阶段:init(管道创建)和running(服务请求)。 解决您的问题的正确且明确的方法是使用支持运行时配置修改的中间件。

在你的情况下: 如果您使用 Kentor.AuthServices lib 进行身份验证,则此支持是开箱即用的。您只需要在启动时注册一个中间件实例,当您修改(添加或删除 IdentityProviders)您最初提供的 KentorAuthServicesOptions 实例时,所做的更改将立即被中间件使用。

如果您必须使用其他组件,您可以通过将现有的身份验证中间件包装到新的中间件中并在内部处理实例来自行构建此支持。 (您可以创建一个处理配置的中间件,并使用每个配置依次调用身份验证中间件……等等。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在运行时向 OWIN 管道注册新的中间件,无需重新启动应用程序 的相关文章

  • 将用户数据存储在身份验证服务器或资源服务器中?或两者?

    这是我第一次使用 IdentityServer 4 和 AspNetIdentity 设置 OpenID Connect 我希望有人能够揭开有关存储用户数据的部分的神秘面纱 到目前为止我读到的是 用户数据应该存储在连接到身份验证服务器的身份
  • IdentityServer 3返回invalid_client

    我正在使用 IdentityServer3 和 EF 我有 API 项目 我想使用以下方式验证其访问权限access token 所以基于sample https identityserver github io Documentation
  • 请确保至少一个领域可以验证这些令牌

    所以我把我的shiro设置为有两个Realms 用户名和密码领域 使用标准 UsernamePasswordToken 我还设置了一个自定义承载身份验证令牌 用于处理从用户传入的令牌 如果我只使用我的passwordValidatorRea
  • 确定用于映射网络驱动器的域和用户名

    使用带有 SP1 的 Windows 7 Enterprise 但我希望得到适用于 Windows XP 2003 2008 Vista 7 的通用答案 从命令提示符处 我执行net use命令将 Z 驱动器映射到另一台计算机上的共享 但我
  • UseOpenIdConnectAuthentication - 无法取消对消息的保护。状态错误消息

    我正在尝试将 Google 和 Azure Active Directory 权限添加为我的应用程序中的 OpenIdConnect 选项 如果我单独添加它们 它就可以正常工作 但如果我将它们都添加 我会收到以下错误消息 无法取消对消息的保
  • MYSQL 区分大小写的 utf8 搜索(使用 hibernate)

    我的登录表具有 utf8 字符集和 utf8 排序规则 当我想要检查用户名并检索该特定用户名的其他信息时 hql 查询会为我提供小写和大写相同的结果 我应该如何处理适用于案例的 HQL 查询 我使用 Mysql 5 和 java hiber
  • CakePHP 身份验证插件身份关联

    我正在使用 CakePHP 3 8 并迁移到身份验证插件 https book cakephp org authentication 1 1 en index html https book cakephp org authenticati
  • 无法在 Azure AD 的 access_token 中获取电子邮件声明

    我们已在 Azure 中为 SPA 配置了应用程序注册 用于身份验证代码流程 We have added email under optional claims as per below 清单文件配置如下 id
  • iOS 相互认证

    我正在尝试在 IOS 5 中实现相互身份验证 但遇到了麻烦 NSUnderlyingError Error Domain kCFErrorDomainCFNetwork Code 1200 An SSL error has occurred
  • 在 GraphQL 服务器中实现访问控制的好模式是什么?

    背景 我有一组模型 包括用户和各种其他模型 其中一些模型包含对用户的引用 我公开这些模型 以便通过 GraphQL API 生成的查询Graffiti https github com RisingStack graffiti 由 Mong
  • 使用 SSL 证书验证 Web 浏览器

    是否可以使用 ssl 证书对 Web 浏览器进行身份验证 假设我在应用程序中存储私钥 有什么方法可以从浏览器读取密钥并尝试基于该私钥进行身份验证 您可以使用 SSL TLS 客户端证书身份验证来对浏览器 用户进行身份验证 服务器必须请求客户
  • 在现实的ASP.NET网站开发中,开发人员通常是使用VS提供的一套登录控件,还是开发自己的控件? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在负载均衡器后面配置 UseCookieAuthentication

    我正在配置 netcore 应用程序以使用 OIDC 身份验证 由 IdentityServer 提供 我在我的 StartUp 中包含了以下代码 app UseCookieAuthentication new CookieAuthenti
  • VBA:使用 Windows 身份验证登录

    我有一个 Access 应用程序 要求用户输入其 Windows 域用户和密码才能进入 我使用以下 VBA 代码来完成此任务 Function WindowsLogin ByVal strUserName As String ByVal s
  • Next.js 身份验证策略

    我一直在尝试为 Next js 项目实现可靠的身份验证流程 但现在我完全迷失了 我已经看过 Next js 的示例存储库 但我对完整的解决方案有很多疑问 我有一个express js API 和一个单独的Next js 前端项目 所有数据和
  • 在同一站点上使用基本身份验证和表单身份验证

    谁能告诉我 是否可以在我的网站上同时使用基本身份验证和表单身份验证 而两者不会相互干扰 我有一个新网站 出于批准目的 我只希望某些人看到该网站 该网站有一个使用表单身份验证的会员区域 现在当任何人在通过基本身份验证后进入该网站时 他们都会被
  • 如何在 PHP 中正确启动会话?

    我最近正在学习有关如何为我的网站制作自定义 CMS 的教程 我目前正在制作后端 以便用户可以创建和编辑页面 该教程有点旧 因此各种功能已被弃用 我能够修复大多数问题 除了 session register 功能 我在很多网站上看到 包括这个
  • 启动包中没有指定postgresql用户名

    public class HelloPostgreSQLActivity extends Activity TextView resultArea Override public void onCreate Bundle savedInst
  • 姜戈。登录表单的错误消息

    我制作登录名 密码表格 model class LoginForm forms Form username forms CharField max length 100 password forms CharField widget for
  • 从 .NET 应用程序登录 Windows

    我认为它应该是一个Windows服务 当给定某些条件时 它应该执行登录到机器的操作 机器将在 登录屏幕 中检查网络服务 以了解登录时应使用的用户名和密码 这可以吗 我不想要 自动登录 Windows 功能 Thanks AFAIK 无法完成

随机推荐