无法理解MVC5 + WebApi2授权

时间:2014-01-02 15:46:12

标签: asp.net-web-api oauth-2.0 asp.net-mvc-5 asp.net-web-api2 asp.net-authorization

我知道OAuth的概念是什么:用户使用授权类型,用户名和密码向服务器发送请求,在对服务器进行一些检查后,用户会收到访问令牌。 我无法理解的是为什么我应该这样做:

        ClaimsIdentity oAuthIdentity = await _userManager.CreateIdentityAsync(user,
            context.Options.AuthenticationType);
        var ticket = new AuthenticationTicket(oAuthIdentity, GenerareProperties(user));
        context.Validated(ticket);

CreateIdentityAsync返回什么?什么是AuthenticationTicketcontext.Validated做了什么? 另外,如果我oAuthIdentity,为什么还要使用cookiesIdentity?最后,生成访问令牌在哪里?

我搜索过但无法找到解释此内容的网站。

1 个答案:

答案 0 :(得分:1)

CreateIdentityAsync将返回在运行上下文的ClaimsPrincipal中使用的ClaimsIdentity,它将在...中进一步抽象化。

为方便起见,AuthenticationTicket只是传入的内容的包装。

context.Validated会将故障单中的信息添加到当前主体,并允许OWIN管道继续而不是返回401。

cookiesIdentity的原因是允许从模板中的MVC页面进行身份验证。它确实不用于WebApi。

  • 进一步阅读的一些资料来源:
    • 这是一个很好的article,用于描述RC中的模板,类似于
    • 此处还有two blogs,其作者分解了可能看似模糊不清的.NET安全部分