Windows Identity Foundation - 以编程方式从web.config中读取声明类型

时间:2012-03-09 14:52:17

标签: wif

以编程方式读取Web.config中的声明类型的最佳方法是什么?

2 个答案:

答案 0 :(得分:3)

我可能会弄错,但我不认为web.config中applicationService / claimTypeRequested下列出的声明类型实际上是由WIF使用的,它们仅在生成应用程序的联合元数据文档时由FedUtil.exe使用。因此,我不认为WIF会在FederatedAuthentication.ServiceConfiguration的任何地方公开它们,就像人们所期望的那样。

你总是可以打开web.config并自己扫描它们,如下所示:

XmlDocument doc = new XmlDocument();
doc.Load(WebConfigurationManager.OpenWebConfiguration("~").FilePath);
XmlNamespaceManager docNs = new XmlNamespaceManager(doc.NameTable);
docNs.AddNamespace("fed", doc.DocumentElement.NamespaceURI);
XmlNodeList claimsNodes = doc.SelectNodes(@"/fed:configuration/fed:microsoft.identityModel/fed:service[count(@name)=0 or @name='']/fed:applicationService/fed:claimTypeRequired/fed:claimType", docNs);

答案 1 :(得分:1)

@Andrew是正确的 - web.config中的列表仅用于元数据。

如果您愿意,可以Access The Claims in an ASP.NET Page,扫描web.config并进行比较。