C# Web API创建API密钥
我感兴趣的是为web.API创建API密钥,并允许客户端使用API密钥与API通信,而不是使用web.API提供的授权 我希望多个客户端能够与web.api通信。我可以使用api密钥,允许客户端与客户端通信,而不是创建用户名和密码 有这样的内置功能吗C# Web API创建API密钥,c#,asp.net-web-api,api-key,C#,Asp.net Web Api,Api Key,我感兴趣的是为web.API创建API密钥,并允许客户端使用API密钥与API通信,而不是使用web.API提供的授权 我希望多个客户端能够与web.api通信。我可以使用api密钥,允许客户端与客户端通信,而不是创建用户名和密码 有这样的内置功能吗 如果有人想实施它,你会怎么做 您可以通过使用来实现。基本上,可能有一个名为ApiKey(ApiKey,secretKey)的数据库表。每个客户端都有每个Apikey和密钥: ApiKey类似于公钥,将通过HTTP发送(与用户名类似) 密钥不是通过H
如果有人想实施它,你会怎么做 您可以通过使用来实现。基本上,可能有一个名为ApiKey(ApiKey,secretKey)的数据库表。每个客户端都有每个Apikey和密钥:
您可以在我的回答中通过ApiKey更改用户名,通过密钥更改散列密码,以符合您的想法。因此,您将要求客户端在每个API请求上构建散列?这里涉及的开销是什么?我想是的,这就是HMAC的工作方式,请您详细说明您的问题。如果您对客户端调用的每个方法调用
ComputeHash(string-hashedPassword,string-message)
,那么每次调用会增加多少时间?ComputeHash
平均需要多长时间才能完成?没什么,不到一毫秒。因此,几乎没有任何开销,非常好。获得用户的密钥一直是一个难题。您可以使用一个两步流程:通过ssl将哈希+盐密码(连同盐)发送到服务,并让服务发回关联的密钥。将来的事务使用(哈希+盐)键而不是密码。您也可以使用密码以这种方式重置令牌。