启动后启用/禁用身份验证选项
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 身份验证后,预检(选项)请求失败