5

我已经观看并查看了很多关于保护 asp.net web api 的页面 - 包括:http ://weblogs.asp.net/jgalloway/archive/2012/03/23/asp-net-web-api-screencast-series -part-6-authorization.aspxhttp://weblogs.asp.net/jgalloway/archive/2012/05/04/asp-net-mvc-authentication-customizing-authentication-and-authorization-the-right-way .aspx - 但是,我还没有看到 KISS 类型的示例。

例如,如果我有一个 web api,它返回一个汽车列表 - 我正在与想要查询(获取)和插入(发布)列表的第 3 方(即不是我自己的网站或服务器/域)合作将汽车按类型放入我的数据库中,我如何对它们进行身份验证(通过 https)?

他们是否只是简单地添加(到他们的 JSON GET/Post 中)类似:

[
{"username":"someusername","password":"somepassword",
{
"carTypeID":12345,
"carTypeID":9876}
"carTypeID":2468}
}
}
]

然后我可以获取用户名和密码,并在 .net 中检查我的会员数据库,然后“IfUserAuthenticated”继续处理 JSON 的其余部分?

或者有没有更好的方法来做到这一点?我听说过在标题等中添加细节 - 但我不确定这是出于某种原因,还是过于复杂化。我还听说过设置发送回第 3 方的令牌 - 如果这是最好的方法,我应该给他们什么指示来构建他们将使用我的 API 的应用程序?

感谢您的任何建议/指点,

标记

4

3 回答 3

4

如果您想保持简单,您可以使用基本身份验证。通过 SSL,它非常安全。它只涉及向请求添加标头:

Authorization: Basic <username:password encoded as base64>

您可以在此处找到实现它的方法。

于 2012-06-11T21:10:19.060 回答
3

您可以将 HTTP 基本身份验证与 SSL 一起使用。使用消息处理程序实现它非常简单,并且在许多平台上都支持开箱即用。有关示例,请参见我的博客(与您选择的会员提供商集成非常容易)

http://www.piotrwalat.net/basic-http-authentication-in-asp-net-web-api-using-message-handlers/

于 2012-08-24T09:09:22.180 回答
0

我为 Web API 编写了类似的东西:
http ://remy.supertext.ch/2012/04/basic-http-authorization-for-web-api-in-mvc-4-beta/

它现在在一些地方使用,我们从生产大约 2 个月以来就一直在使用它。似乎工作正常。

于 2012-07-30T21:54:13.503 回答