我遵循本教程:http://robbincremers.me/2012/02/22/using-windows-azure-access-control-service-to-provide-a-single-sign-on-experience-与流行的-身份提供商/#评论-469
使用本指南或其他人,当取消注释Web配置中的身份验证表单以使用从windows azure访问控制门户下载的自定义html登录表单时,我收到500内部服务器错误。可能有什么不对?
只是添加身份验证表单
<location path="FederationMetadata">
<system.web>
<customErrors mode="Off"/>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<system.web>
<httpRuntime requestValidationMode="2.0"/>
<!-- <authorization>
<deny users="?" />
</authorization>-->
<authentication mode="None" />
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
<!--Commented out by FedUtil-->
<authentication mode="Forms"><forms loginUrl="~/Federation/Login.html" timeout="2880" /></authentication>
<pages>
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
</namespaces>
</pages>
<httpModules>
<add name="WSFederationAuthenticationModule" type="Microsoft.IdentityModel.Web.WSFederationAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add name="SessionAuthenticationModule" type="Microsoft.IdentityModel.Web.SessionAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</httpModules>
</system.web>
答案 0 :(得分:3)
那是因为身份验证元素定义了两次。 web.config中只能存在一个。第14行你有这个:
<authentication mode="None" />
在第21行你有这个:
<authentication mode="Forms"><forms loginUrl="~/Federation/Login.html" timeout="2880" /></authentication>
删除或注释掉其中一行以解决问题。