Asp.net 保护Web服务

Asp.net 保护Web服务,asp.net,api,Asp.net,Api,我正在创建一个API,其中包含一系列将在web上发布的公共方法,我需要保护它们。在这种情况下,它不是关于加密,而是关于身份验证 其思想是,任何使用web服务的人都是数据库上的注册用户,这样我们就可以将外部用户拒之门外。我一直在阅读有关API键的文章,但我不知道它们是否是解决我的问题的正确方法,也不知道如何实现它们 所以,问题是:我如何防止不认识的人使用web服务 注意:可能会对已知用户的请求进行日志记录,以跟踪他们的行为并终止与可疑活动的连接。另外,我正在使用ASP.NET。支持客户端基于证书的

我正在创建一个API,其中包含一系列将在web上发布的公共方法,我需要保护它们。在这种情况下,它不是关于加密,而是关于身份验证

其思想是,任何使用web服务的人都是数据库上的注册用户,这样我们就可以将外部用户拒之门外。我一直在阅读有关API键的文章,但我不知道它们是否是解决我的问题的正确方法,也不知道如何实现它们

所以,问题是:我如何防止不认识的人使用web服务


注意:可能会对已知用户的请求进行日志记录,以跟踪他们的行为并终止与可疑活动的连接。另外,我正在使用ASP.NET。

支持客户端基于证书的身份验证。最新的等价物是,它还支持客户端证书。

API密钥是一个好主意


这个想法就是为每个用户分配一个私钥,他们必须提供私钥(或者更好的是,通过质询响应提供拥有权的证明),以便进行API调用。

我回来解释我是如何完成这项工作的

首先,我对每个应用程序API键使用了一个(a的自定义实现),因此对于使用我创建的web服务的每个应用程序,我都为它们提供了一个键。此类密钥必须与重新生成密钥所需的一些应用程序数据一起提供,并与应用程序提供的数据相匹配

其次,为了实现我的目标,我使用了SoapHeader和方法的变体。基本上,每次调用方法时,密钥和应用程序数据都与消息一起作为头的一部分。因此,每次应用程序调用公共方法时,都会进行验证过程

我很感谢大家给我的答案,我的方法非常有趣,我决定这样做的原因是因为web服务已经启动并运行,并且是.NET3.5。。。因此,无论是WCF还是ASP。WSE可以为我提供最好、更容易实现的解决方案


谢谢。

两个链接指向同一个URL。我一直在谷歌上搜索,因为WSE似乎不再是一个好方法,而且因为我认为它与VS 2010和ASP.NET 3.5不兼容,我会选择WCF。我刚读到关于WCF的内容,我也不认为这是一个好方法,因为我的服务已经准备好,而且,就我所读到的而言,WCF是Web服务的一种独特方法SPEDROC88-您是否可以提供实现的示例代码?