Asp.net core ASP.NETCore中的联邦身份验证的替代方案是什么?
我有一个Web API(.Net 4.6),它使用FederatedAuthentication(System.IdentityModel.Services)对我的用户进行身份验证,现在我正尝试将其移植到ASP.Net Core 2.2 Web API 以下是生成FedAuth令牌cookie的现有代码:Asp.net core ASP.NETCore中的联邦身份验证的替代方案是什么?,asp.net-core,federated-identity,Asp.net Core,Federated Identity,我有一个Web API(.Net 4.6),它使用FederatedAuthentication(System.IdentityModel.Services)对我的用户进行身份验证,现在我正尝试将其移植到ASP.Net Core 2.2 Web API 以下是生成FedAuth令牌cookie的现有代码: 1.AuthController.cs //... Create new Identity and Claims Principal. ClaimsIdentity claimsIdenti
1.AuthController.cs
//... Create new Identity and Claims Principal.
ClaimsIdentity claimsIdentity = new ClaimsIdentity(User.Identity);
ClaimsPrincipal claimsPrincipal = new ClaimsPrincipal(claimsIdentity);
claimsIdentity.AddClaims(__getClaims());
claimsPrincipal.AddIdentity(claimsIdentity);
//... Create a new Session Security Token.
var token = FederatedAuthentication.SessionAuthenticationModule.CreateSessionSecurityToken(
claimsPrincipal, "MyAPP", DateTime.UtcNow, DateTime.UtcNow.AddMinutes(expirationTime), false);
//... Write a cookie.
FederatedAuthentication.SessionAuthenticationModule.
AuthenticateSessionSecurityToken(token, true);
在Web.config中:
由于我的所有依赖应用程序都使用索赔标识和索赔主体,因此我希望在ASP.net core中也继续使用相同的标识和主体
所以,我的问题是,创建会话安全令牌的方法是什么
(cookie)是否在ASP.net核心web API中具有声明标识
非常感谢 我相信我得到了我想要的; 以下是我发现的两篇好文章:
注意:我之所以在这里只发布链接来回答我自己的问题,是因为它们是很长的文章,必须阅读很长的篇幅才能理解主题。在回答此类问题时,最好在链接之外添加相关文本,这样,如果链接消失,答案仍然可用。在这种情况下,jonhilton.net链接不再工作。
<configSections>
<!--WIF 4.5 sections -->
<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>
<modules>
<add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</modules>
<system.identityModel>
<identityConfiguration>
<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>