启动后启用/禁用身份验证选项

Posted

技术标签:

【中文标题】启动后启用/禁用身份验证选项【英文标题】:Enable/disable authentication options after startup 【发布时间】:2013-12-23 12:55:27 【问题描述】:

我想创建一个自定义 CMS,其中管理员可以在其管理面板中选择所有可能的登录选项。但我只能在我的 Startup.cs 中为 OWIN 设置第三方登录:

public partial class Startup

    public void ConfigureAuth(IAppBuilder app)
    
        // Enable the application to use a cookie to store information for the signed in user
        app.UseCookieAuthentication(new CookieAuthenticationOptions
        
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            LoginPath = new PathString("/Account/Login")
        );
        // Use a cookie to temporarily store information about a user logging in with a third party login provider
        app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

        // Uncomment the following lines to enable logging in with third party login providers
        app.UseMicrosoftAccountAuthentication(
            clientId: "00000000000000000",
            clientSecret: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

        app.UseTwitterAuthentication(
            consumerKey: "xxxxxxxxxxxxxxxxxxxxxx",
            consumerSecret: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

        app.UseFacebookAuthentication(
            appId: "000000000000000",
            appSecret: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

        app.UseGoogleAuthentication();
    

我想从我正在运行的应用程序中启用和禁用这些登录选项。这样启动后。这可能吗?如果可以,怎么做?

【问题讨论】:

您找到解决方案了吗? @WilliamEdmondson 不抱歉 【参考方案1】:

大多数登录流程是由用户从列表中选择一个身份验证提供程序触发的。您可以只显示/隐藏该列表中的项目。

【讨论】:

这不是我想要的。管理员还必须能够为所需的登录设置所需的 ids/secrets/keys。我希望能够构建一个 cms dll,然后用户可以将其放在他们的服务器上,然后在管理面板中进行编辑。 好的,所以你想要一个自我编辑的网站。我见过的最常见的方法是让他们进行更改,将它们保存到配置文件中,然后重新循环站点。 我希望它对用户最友好且易于使用,无需等待回收等,因此我想将设置存储在数据库中。一定有办法进入owin的设置... 抱歉,如果不重新启动应用程序就无法重新构建管道,因此您无法即时添加或删除身份验证提供程序。如果您只想更改密钥,您从技术上讲,可以通过保留每个提供者的选项对象并在启动后更改选项来做到这一点。

以上是关于启动后启用/禁用身份验证选项的主要内容,如果未能解决你的问题,请参考以下文章

在 IIS 中禁用匿名身份验证后 WebServiceHost 无法正常工作

在 Angular 9 + Asp.net Core Web API 中启用 Windows 身份验证后,预检(选项)请求失败

上传到本地 pypi 服务器时禁用身份验证

禁用 cookie 时如何验证用户身份?

禁用 SSH 的密码身份验证无法按预期工作 Ubuntu 14.04 LTS

Firebase:在验证时禁用帐户或在启用后发送验证