【问题标题】:OWIN/Katana & BasicAuthenticationOWIN/Katana & BasicAuthentication
【发布时间】:2014-01-17 15:55:28
【问题描述】:

我正在尝试完成一个简单的任务: 使用 BASIC Auth 保护我的 ASP.NET WEBAPI(构建在 Katana 之上)。 我知道我可以实现自己的中间件或消息处理程序或其他任何东西。但是我想知道这样一个简单的任务是否还没有实现? 我在网上找到了多个示例,这些示例显示了它应该多么简单。但是所有这些示例都引用了一个名为 microsoft.owin.security.basic 的 nuget 包,我在任何地方都找不到它!? 你能帮帮我吗?

【问题讨论】:

    标签: c# asp.net asp.net-web-api katana


    【解决方案1】:

    首先,您应该考虑不直接进行基本身份验证 - 而是使用 OAuth2 授权服务器方法 - 先阅读以下内容:

    http://leastprivilege.com/2013/11/13/authorization-servers-are-good-for-you-and-your-web-apis/

    http://leastprivilege.com/2013/11/13/embedding-a-simple-usernamepassword-authorization-server-in-web-api-v2/

    如果您仍想进行基本身份验证 - 那么在此 repo 中您将找到 Katana 的实现:

    https://github.com/thinktecture/Thinktecture.IdentityModel/tree/master/source/Thinktecture.IdentityModel.Owin

    nuget:Thinktecture.IdentityModel.Owin

    【讨论】:

    • 嗨多米尼克,非常感谢您的回答。为什么我不应该直接使用基本身份验证?对于通过 ssl 通信并且应该具有基本身份验证机制的简单服务,oauth2 是否有点过大?感谢您提供相关链接,非常有趣。
    • 我假设你还没有阅读这些帖子?所有答案都在那里......但简而言之 - 在基本身份验证中,您必须在每个请求上传输密码 - 如果您的密码得到适当的保护并存储在服务器上,这实际上是不可行的。我的第二篇文章展示了您如何在 10 行代码中获得“用于 Web api 的 cookie”方法。那是“超大尺寸”?
    • 好的,谢谢!我会先阅读帖子,而不是问过时的问题:) 非常感谢
    • 当您的客户端不支持时,不可能使用 OAuth2。当然还有很多。
    • 就像 Alexey 指出的那样,有时开发人员别无选择,即我必须与使用基本身份验证的框架集成,因此我的 API 必须支持它。奇怪的是,OWIN 没有内置基本身份验证。
    【解决方案2】:

    对于那些寻求使用 Web API+OWIN+Katana 进行基本身份验证的简化方式的用户,请使用出色的 Thinktecture.IdentityModel.Owin.BasicAuthentication 库。

    NuGet:HERE 和 来源:HERE

    【讨论】:

      猜你喜欢
      • 2017-05-13
      • 1970-01-01
      • 2018-12-19
      • 1970-01-01
      • 1970-01-01
      • 2015-01-09
      • 2014-06-05
      • 2015-03-05
      • 2018-06-28
      相关资源
      最近更新 更多