MVC应用程序中的web api身份验证?

时间:2017-05-29 08:30:56

标签: asp.net-mvc api asp.net-web-api

我对Web API如何实现身份验证感到困惑?

我已经浏览了链接1.

  1. Link1

  2. Link2

  3. 需要总结一下我的理解。

    1. Owin katana是一种可以实施授权的机制。

    2. 可以在主机中创建Iprincipal 在httpmodule中将附加到currentthread到     验证

    3. 基于令牌的身份验证实现了owin。

    4. 我对web api中的身份验证机制一无所知。如果有人能帮助我理解这一点,那就太好了。

      我有以下疑惑。

      1. Owin是MVC中一种新的身份验证方式吗?或者它已经存在了 Windows的一部分和基于表单的身份验证?
      2. 如果我写了一个模块来验证我可以用来验证api方法/控制器的不同方法是什么?

1 个答案:

答案 0 :(得分:1)

你的问题的答案可能很大,我会尝试给你一些指导:

Katana是微软实施的OWIN标准

https://docs.microsoft.com/en-us/aspnet/aspnet/overview/owin-and-katana/getting-started-with-owin-and-katana

基于令牌的授权由OWIN支持,因此由Katana支持。 有两种非常常用的方法来实现此令牌授权,您可以使用Windows授权

https://docs.microsoft.com/en-us/aspnet/aspnet/overview/owin-and-katana/enabling-windows-authentication-in-katana

或者您可以使用OAuth使用更标准和可推荐的方式:

https://docs.microsoft.com/en-us/aspnet/aspnet/overview/owin-and-katana/owin-oauth-20-authorization-server

使用ASP.net(netfx,而不是核心),您可以使用控制器级别的属性来提供实现授权和身份验证所需的元数据。