我有一个使用WIF设置联合身份验证的ASP.NET MVC应用程序,如果我在web.config中设置受众uris,如下所示:
<system.identityModel>
<identityConfiguration>
<audienceUris>
<add value="https://foo.org/" />
<add value="https://bar.com/"/>
</audienceUris>
<!-- more setup -->
</identityConfiguration>
</system.identityModel>
一切正常。但我想在我的C#代码中添加额外的受众uris。
问题
如何获取WIF使用的AudienceUriElementCollection?
如何向其添加新的受众uris并让WIF也使用新的受众?
答案 0 :(得分:3)
这是我最近尝试的代码(仅在开发中测试过)。
Uri uri = new Uri(HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Host);
if(!FederatedAuthentication.ServiceConfiguration.AudienceRestriction.AllowedAudienceUris.Contains(uri))
FederatedAuthentication.ServiceConfiguration.AudienceRestriction.AllowedAudienceUris.Add(uri);
答案 1 :(得分:2)
您可以在Application_Start中订阅ServiceConfigurationCreated事件(关闭FederatedAuthentication)。从那里您可以以编程方式访问配置。