我正在关注this tutorial,其中展示了如何构建声明感知的ASP.NET WebForms应用程序,其中的页面“显示安全令牌服务发给您的令牌中的声明”。
请注意,本教程“没有关于创建安全令牌服务(STS)的详细说明,并假设您已经配置了STS。”
现在我按照教程进行了操作,但我自己没有设置STS。当我运行网络应用程序时,我在该页面上看到了一个声明,特别是:
声明类型:http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
索赔价值:
索赔值类型:http://www.w3.org/2001/XMLSchema#string
索赔主题名称:
索赔发行人:当地管理局
由于我没有设置STS,此声明来自哪里?
在我的web.config中,我有:
<system.identityModel>
<identityConfiguration>
<audienceUris>
<add value="http://localhost:28503/" />
</audienceUris>
<issuerNameRegistry type="System.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<trustedIssuers>
<add thumbprint="1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234" name="YourSTSName" />
</trustedIssuers>
</issuerNameRegistry>
<certificateValidation certificateValidationMode="None" />
</identityConfiguration>
</system.identityModel>
<system.identityModel.services>
<federationConfiguration>
<cookieHandler requireSsl="false" />
<wsFederation passiveRedirectEnabled="true" issuer="http://localhost:13922/wsFederationSTS/Issue" realm="http://localhost:28503/" reply="http://localhost:28503/" requireHttps="false" />
</federationConfiguration>
</system.identityModel.services>
但是localhost:13922和localhost:28503都没有提供任何服务。 (我的网络应用程序托管在http://localhost:59392/)