以编程方式读取Web.config中的声明类型的最佳方式是什么?
我可能错了,但我不认为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);
@Andrew是正确的-web.config中的列表仅用于元数据。
如果愿意,可以访问ASP.NET页面中的声明,扫描web.config并进行比较。