【发布时间】:2015-01-22 19:02:18
【问题描述】:
我是尝试使用 AD FS 的新手,我一直在兜圈子。
- 尝试制作声明感知应用程序
- 组织处理自己的身份验证
我已经让我的测试应用程序来验证身份验证,但它似乎错了。
- 在 Visual Studio 中创建新应用程序
- 选择 Web -> Visual Studio
- 选择 .Net Framework 4.5
- 选择 ASP.Net MVC 4 Web 应用程序
- 添加对 System.Identity 的引用
- 添加对 System.Identity.Services 的引用
- 编辑我的 web.Config 文件
- 在配置部分——添加以下内容
<section name="system.identityModel" type="System.IdentityModel.Configuration.SystemIdentityModelSection, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<section name="system.identityModel.services" type="System.IdentityModel.Services.Configuration.SystemIdentityModelServicesSection, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
- 然后添加
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="ida:FederationMetadataLocation" value="https://fedtest.xxxxxxxx.com/FederationMetadata/2007-06/FederationMetadata.xml" />
<add key="ida:Realm" value="https://myappNameHere.xxxxxx.com" />
<add key="ida:AudienceUri" value="http://myappNameHere.xxxxxxx.com" />
<add key="loginUrl" value="~/Home" />
</appSettings>
- 然后添加
<location path="Home">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="Logout.html">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
- 然后添加
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<authorization>
<deny users="?" />
</authorization>
<authentication mode="None" />
</system.web>
- 然后添加
<identityConfiguration>
<audienceUris>
<add value="http://myappName.xxxxxx.com/" />
</audienceUris>`
<issuerNameRegistry type="System.IdentityModel.Tokens.ValidatingIssuerNameRegistry, System.IdentityModel.Tokens.ValidatingIssuerNameRegistry">
<authority name="http://fedtest.xxxxxxx.com/adfs/services/trust">
<keys>
<add thumbprint="12345567890asdasfsdgdfhdfgjdf123124" />
</keys>
<validIssuers>
<add name="http://fedtest.xxxxxxxx.com/adfs/services/trust" />
</validIssuers>
</authority>
</issuerNameRegistry>
<securityTokenHandlers>
<add type="System.IdentityModel.Services.Tokens.MachineKeySessionSecurityTokenHandler, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<remove type="System.IdentityModel.Tokens.SessionSecurityTokenHandler, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</securityTokenHandlers>
<certificateValidation certificateValidationMode="None" />
</identityConfiguration>
</system.identityModel>
<system.identityModel.services>
<federationConfiguration>
<cookieHandler requireSsl="true" />
<wsFederation passiveRedirectEnabled="true"
issuer="https://fedtest.xxxxxxxxx.com/adfs/ls/"
realm="https://myappName.xxxxxxxx.com/"
reply="https://myappName.xxxxxxxxx.com/"
requireHttps="true" />
</federationConfiguration>
</system.identityModel.services>
为什么我认为这一切都是错误的?好吧,我通过以下步骤获得了所有这些 web.config 行...
- 返回步骤 5 并执行以下操作
- 在 Tempalte 下点击网页
- 选择唯一的选项 --- ASP.NET Web 应用程序
- 向导出现并单击“更改身份验证”
- 选择组织帐户
- 将下拉菜单更改为“本地”
- 填写“本地授权”
- 填写“应用 ID URI”
- 查看 web.config
但是使用这些步骤产生的应用程序会创建一个重定向循环,我一直无法解决这个问题。
所以——关于我做错了什么的建议。以标准方式生成 web.config 并将其粘贴到以前的版本中以使其正常工作是不正确的。
【问题讨论】:
标签: asp.net-mvc visual-studio-2013 web-config adfs