Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core ASP.NETCore中的联邦身份验证的替代方案是什么?_Asp.net Core_Federated Identity - Fatal编程技术网

Asp.net core ASP.NETCore中的联邦身份验证的替代方案是什么?

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

我有一个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 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中具有声明标识


非常感谢

我相信我得到了我想要的; 以下是我发现的两篇好文章:

  • 编辑:第二个链接由作者更新,导致404错误。我找到了工作链接并在这里更新


    注意:我之所以在这里只发布链接来回答我自己的问题,是因为它们是很长的文章,必须阅读很长的篇幅才能理解主题。

    在回答此类问题时,最好在链接之外添加相关文本,这样,如果链接消失,答案仍然可用。在这种情况下,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>