C# 配置OWIN以使用表单登录和联合登录
我正在创建一个新的MVC5-ASP.NET身份项目,我想支持两种登录方法:表单和eID(数字护照) 我想使用OWIN轻松实现以下功能:C# 配置OWIN以使用表单登录和联合登录,c#,asp.net-mvc,wif,federated-identity,owin,C#,Asp.net Mvc,Wif,Federated Identity,Owin,我正在创建一个新的MVC5-ASP.NET身份项目,我想支持两种登录方法:表单和eID(数字护照) 我想使用OWIN轻松实现以下功能: 表单登录:基于用户名和密码验证用户 Fed Auth:从eID读取数据,接收请求并找到耦合到该eID的用户()。现在我已经能够通过WIF添加FedAuth STS,但是每当我打开我的应用程序时,我就会自动重定向到eID站点(如果我禁用了被动重定向,我就会得到一个重定向循环) 我知道这将是一个广泛的主题,我知道这是一个非常普遍的问题。我曾尝试在谷歌上搜索一些教
- 表单登录:基于用户名和密码验证用户
- Fed Auth:从eID读取数据,接收请求并找到耦合到该eID的用户()。现在我已经能够通过WIF添加FedAuth STS,但是每当我打开我的应用程序时,我就会自动重定向到eID站点(如果我禁用了被动重定向,我就会得到一个重定向循环)
<configSections>
..
<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" />
..
</configSections>
<appSettings>
..
<add key="ida:FederationMetadataLocation" value="https://www.e-contract.be/eid-idp/endpoints/ws-federation/metadata/auth-ident-metadata.xml" />
<add key="ida:Issuer" value="https://www.e-contract.be/eid-idp/protocol/ws-federation/auth-ident" />
<add key="ida:ProviderSelection" value="productionSTS" />
..
</appSettings>
<location path="FederationMetadata">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules>
<add name="WSFederationAuthenticationModule" type="System.IdentityModel.Services.WSFederationAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />
<add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />
..
</modules>
</system.webServer>
<system.identityModel>
<identityConfiguration>
<audienceUris>
<add value="https://localhost:44301/" />
</audienceUris>
<issuerNameRegistry type="System.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089">
<trustedIssuers>
<add thumbprint="5981a2be47ca66203c9165edeb697d833df1b77d" name="www.e-contract.be" /><!-- Change this thumbprint if eID stops working https://www.e-contract.be/eid-idp/main.seam -->
</trustedIssuers>
</issuerNameRegistry>
<claimsAuthenticationManager type="ePortaal.Federation.FederationUserAuthenticationManager, ePortaal" />
<certificateValidation certificateValidationMode="None" />
<securityTokenHandlers>
<remove type="System.IdentityModel.Tokens.SessionSecurityTokenHandler, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add type="System.IdentityModel.Services.Tokens.MachineKeySessionSecurityTokenHandler, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</securityTokenHandlers>
</identityConfiguration>
</system.identityModel>
<system.identityModel.services>
<federationConfiguration>
<cookieHandler requireSsl="true" />
<wsFederation requireHttps="true" passiveRedirectEnabled="false" realm="https://localhost:44301/" issuer="https://www.e-contract.be/eid-idp/protocol/ws-federation/auth-ident" />
</federationConfiguration>
</system.identityModel.services>
..
..
..
..
..
电子合同每隔几个月就会更改一次指纹,你可以在网站上的“identiit thumbprint:5981a2be47ca66203c9165edeb697d833df1b77d”(将此键放入你的web.config)下找到它。你想要什么还不完全清楚。如果你不想被自动重定向,你必须在web.config中用一个。这样,您的登录屏幕就会出现,您可以有一个登录按钮,显式重定向到eid站点。在同一页面上,您可以有一个使用forms Authentication的登录表单