我如何以编程方式向AudienceUriElementCollection提供受众群体?

时间:2014-01-05 21:13:31

标签: c# .net wif

我有一个使用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也使用新的受众?

2 个答案:

答案 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)。从那里您可以以编程方式访问配置。