asp.net-mvc – AuthenticationManager.SignIn与AuthenticationManager.AuthenticateAsync的目的是什么?

AuthenticationManager有两种方法.

void SignIn(params ClaimsIdentity[] identities);
Task<AuthenticateResult> AuthenticateAsync(string authenticationType);

他们的目的是什么?在什么情况下应该使用它们?

解决方法

我认为目的是在Authenticate和SignIn方法名称上描述的

因此,AuthenticateAsync的目的基本上是获取身份验证票证

await ticket 
 = Authentication.AuthenticateAsync(DefaultAuthenticationTypes.ExternalBearer);

它返回一个像这样的AuthenticateResult

{Microsoft.Owin.Security.AuthenticateResult}
    Description: {Microsoft.Owin.Security.AuthenticationDescription}
    Identity: {System.Security.Claims.ClaimsIdentity}
    Properties: {Microsoft.Owin.Security.AuthenticationProperties}

使用此结果,您现在可以登录(将身份信息添加到上下文中)

Context.Authentication.SignIn(ticket.Properties,ticket.Identity);

您可以在下面的示例代码中清楚地看到它

var ticket = await Context.Authentication.AuthenticateAsync(Options.AuthenticationType);

    if(ticket != null)
    {
      Context.Authentication.SignIn(ticket.Properties,ticket.Identity);

      Response.Redirect(ticket.Properties.RedirectUri);

      return true;
    }

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....