gpt4 book ai didi

wif - 如何将 federationConfiguration 从 web.config 移至某个自定义配置文件并通过代码动态加载

转载 作者:行者123 更新时间:2023-12-02 04:25:17 25 4
gpt4 key购买 nike

我的配置位于 web.config 中,并且工作正常。

  <configuration>
<system.identityModel.services>
<federationConfiguration>
....
</federationConfiguration>
</system.identityModel.services>
</configuration>

如何将其从 web.config 移至自定义配置文件并从代码加载?

我想使用与此配置相同的结构,这样如果我必须更改此配置文件,我就不必更改代码中的任何内容。

最佳答案

您可以从 global.asax 中访问 WIF 事件

void Application_Start(object sender, EventArgs e) 
{
// Code that runs on application startup
FederatedAuthentication.FederationConfigurationCreated += FederatedAuthenticationOnFederationConfigurationCreated;

}

在该处理程序中,您可以在运行时调整配置。这里有一些代码可以给你一个想法。最终代码会更复杂。

   private void FederatedAuthenticationOnFederationConfigurationCreated(object sender, FederationConfigurationCreatedEventArgs args)
{
var identityConfiguration = new IdentityConfiguration(loadConfig:false);
identityConfiguration.SecurityTokenHandlers.Clear();
//...
identityConfiguration.SecurityTokenHandlers.Add(new Saml2SecurityTokenHandler());
//...
var configuration = new FederationConfiguration(loadConfig: false)
{
CookieHandler = new ChunkedCookieHandler(),
//...
IdentityConfiguration = identityConfiguration
};
args.FederationConfiguration = configuration;
}

如果您对赋予哪个对象什么值有任何疑问,您可以随时临时切换回配置并通过同一事件检查运行时值。不要低估 WIF 开箱即用提供的配置的复杂性和丰富性。
一般来说,您可能需要“代码配置”和“web.config 配置”的混合,因为 web.config 仍然用于配置配置的某些更多可变部分,而代码用于更不可更改的部分......

关于wif - 如何将 federationConfiguration 从 web.config 移至某个自定义配置文件并通过代码动态加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24316833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com