ASP.. NET身份验证自定义API


ASP.NET authentication for custom API

我知道这是一个讨论得很热烈的话题,但我正在努力为我的情况找到解决方案。

我已经在ASP.NET (c# 4.5.1)中完成了一个已经工作的API服务。我的客户端使用php页面来调用页面。aspx在我的服务器上,并通过POST发送字符串。该字符串包含一个ID和一个密码消息。每个用户都有一个不同的密钥(AES 256),因为我有ID,所以我从我的DB获得正确的密钥来解密消息并执行其请求包含的内容。我还检查了IP,每个客户端只有一个批准的IP列表(当他们不使用调试模式进行测试时)

我喜欢这种方法,但现在我不得不让我的用户做一些购买。我已经实现了它(谢谢你PayPal),它的工作,但我觉得我的安全

所以我想添加一些已经知道的已经包装的认证系统,无需重写任何已经工作和调试的代码。

由于使用了很多大型互联网服务,我想到了OAuth 2.0(和我对它一无所知),但看起来每个人都在谈论它是为了创建一个登录,使用服务,如Facebook,谷歌,Twitter等等。不是我的案子。我有我自己的数据库我的用户列表,我需要知道100%的安全性谁正在调用我的API服务。

我尝试创建一个新的Web API 2项目(MVC..该死),但我不能理解如果我可以使用我的服务,而不重写API调用的逻辑(从我看到的看起来像没有是答案)

所以问题是:我可以使用什么身份验证方法,即易于实现,而无需重写已经工作的代码,并且可以从客户端使用PHP?

我在看《ASP. net》。. NET MVC 5基础"教程在Pluralsight由Scott Allen在那里他解释得很好。但在观看该教程之前,对于我所开发的一个应用程序,我们在数据库中有一个表,其中包含登录时出现问题的令牌。然后,客户端将发送令牌及其请求。在服务器端,我做了一个名为[CheckToken]的自定义属性,我将检查令牌是否存在于数据库中,如果它仍然有效(未过期等),我更进一步,有时交换令牌,这样即使令牌被盗,它也不会有效很长时间。这样,用户就不必一直保持登录。