AuthenticationManager.SignIn与AuthenticationManager.AuthenticateAsync的目的是什么?

时间:2017-09-19 10:59:25

标签: asp.net-mvc authentication owin

AuthenticationManager有两种方法。

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

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

2 个答案:

答案 0 :(得分:1)

我认为目的是在验证登录

的方法名称中描述的

因此 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;
    }

答案 1 :(得分:0)

以下是基于visual studio工具提示的这两种方法的描述。 它可能很有用。

AuthenticationManager.SignIn AuthenticationManager.AuthenticateAsync