在asp.net中使用web api通过http进行身份验证

在asp.net中使用web api通过http进行身份验证,asp.net,asp.net-mvc,asp.net-web-api,Asp.net,Asp.net Mvc,Asp.net Web Api,我看了很多关于保护asp.net web api的页面,包括:和。但是,我还没有看到一个吻类型的示例 如果我有一个web api,它返回一个汽车列表,例如,我正在与一个第三方(即不是我自己的网站或服务器/域)合作,该第三方希望按类型查询(获取)和插入(发布)汽车列表到我的数据库中,那么我如何验证它们(通过https) 他们是否简单地(在JSON GET/Post中)添加如下内容: [ {"username":"someusername","password":"somepassword", {

我看了很多关于保护asp.net web api的页面,包括:和。但是,我还没有看到一个吻类型的示例

如果我有一个web api,它返回一个汽车列表,例如,我正在与一个第三方(即不是我自己的网站或服务器/域)合作,该第三方希望按类型查询(获取)和插入(发布)汽车列表到我的数据库中,那么我如何验证它们(通过https)

他们是否简单地(在JSON GET/Post中)添加如下内容:

[
{"username":"someusername","password":"somepassword",
{
"carTypeID":12345,
"carTypeID":9876}
"carTypeID":2468}
}
}
]
然后,我可以获取用户名和密码,并检查.net中的成员数据库,然后“IfUserAuthenticated”继续处理JSON的其余部分

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

谢谢你的建议/指点


标记

如果要保持简单,可以使用基本身份验证。通过SSL,它非常安全。它只需要在请求中添加一个头:

Authorization: Basic <username:password encoded as base64>
授权:基本

您可以找到一种实现它的方法。

我已经为Web API编写了类似的东西:


它现在在一些地方使用,我们已经在生产中使用了大约2个月。似乎工作正常。

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


Hi@carles company-感谢您的回复。我也看过那篇文章,但看不到(或者更可能的是,我还不知道)为了让第三方认证,应该告诉他们什么。这篇文章建议“让他们自己去弄清楚”,但是帮助他们对双方都有好处——所以我想说“做这个,做那个,你会得到汽车列表”——再次感谢你,第三部分只需要添加授权标题。有关更多详细信息,请参阅认证。感谢@Carles company-我将更仔细地研究它-这显然是我需要了解的一个领域!干杯,马克除了公认答案中的基本身份验证方法外,请参见此问题和Darin Dimitrov关于如何使用表单身份验证的回答: