以编程方式读取Web.config中的声明类型的最佳方法是什么?
答案 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并进行比较。