ASP.Net Core中联合身份验证的替代方法是什么?

时间:2018-12-31 06:40:31

标签: asp.net-core federated-identity

我有一个Web API(.Net 4.6),该Web API使用FederatedAuthentication(System.IdentityModel.Services)对我的用户进行身份验证,现在我正尝试将其移植到ASP.Net Core 2.2 Web API。

这是我现有的生成FedAuth令牌cookie的代码:

1. AuthController.cs

<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>


并在Web.config中:

var s = IntStream.rangeClosed(1, 5) // IntStream
                 .boxed() // Stream<Integer>
                 .map(String::valueOf) // Stream<String>
                 .collect(Collectors.toList());

由于我所有依赖的应用程序都使用Claims Identity and Claims Principal,因此我也想在ASP.net核心中继续使用相同的内容。

所以,我的问题是,创建会话安全令牌的方式是什么 (cookie)在ASP.net核心Web API中声明身份?

非常感谢!