.NET WebAPI 和 http 基本身份验证
Posted
技术标签:
【中文标题】.NET WebAPI 和 http 基本身份验证【英文标题】:.NET WebAPI and http basic authentication 【发布时间】:2015-10-01 06:29:38 【问题描述】:我创建了一个WEBAPI
解决方案,并且正在创建 html 页面来访问该 Web 服务的所有功能。我正在使用 http 基本身份验证。
我有这些选项
-
将
username
和 password
保存在 javascript 变量中,并在我每次调用任何 WEBAPI
函数时发送它们。
第一次发送username
和password
,在服务器上创建一个token并发回客户端,然后保存为cookie,每次调用WEBAPI函数时使用。
不要使用 HTTP 基本身份验证。
处理此问题的最佳方法是什么? 谢谢
【问题讨论】:
你试过什么?我们在这里是为了帮助您解决问题,而不是编写一大堆代码。 谢谢,我不想要代码,我想要建筑设计的答案。其实我知道怎么做这3个选项,只是想知道根据这个社区忍者的经验,最好的方法是什么?再次感谢 【参考方案1】:出于安全原因,您不想在每次通话时都发送用户名/密码。基于令牌的身份验证将是可行的方法,您可以为此使用内置身份验证。
我找到的最好的教程是http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/
【讨论】:
谢谢,我去看看【参考方案2】:使用基本身份验证没有任何问题,只要它是通过安全通道完成的。如果您在每次调用时都发送用户名和密码,那么您的 api 将需要在每次调用时访问数据库以验证用户身份。如果在用户通过身份验证时发送令牌,则无需在后续调用中访问数据库。
使用令牌还允许您利用身份提供者(例如 Thinktecture's IdentityServer)来提供单点登录。如果您有多个系统,它将允许用户登录一次然后访问任何应用程序,它可以大大简化安全性。
【讨论】:
wep API 是否有能力保留该令牌并在每次收到某些请求时对其进行验证?以上是关于.NET WebAPI 和 http 基本身份验证的主要内容,如果未能解决你的问题,请参考以下文章
Angular 7 .net 核心 2.2 WebApi Windows 身份验证 CORS
ASP.Net Core - 使用 WebAPI 和 MVC 前端的 JWT 身份验证不起作用
使用 Asp.Net 下的 owin 和 LinkedIn 身份验证提供程序进行 WebApi 身份验证