C# 制作应用程序,使其成为唯一可以连接到我的WebAPI的应用程序

C# 制作应用程序,使其成为唯一可以连接到我的WebAPI的应用程序,c#,authentication,asp.net-web-api,oauth,oauth-2.0,C#,Authentication,Asp.net Web Api,Oauth,Oauth 2.0,如何创建应用程序与myWebAPI交互。应用程序会将一些信息发送到我的网站(WebAPI),然后我会用这些信息更新我的数据库,但问题是如何保护它,所以只有我的应用程序可以与我的网站交互 设计用于部署到多台计算机的应用程序。用户可以匿名使用该应用程序。例如,您不能将对网站(或任何IP端口)的访问限制为仅一个应用程序 在服务器上验证请求,可能只允许经过身份验证的用户访问-这对于大多数情况(付费游戏除外)应该足够了 您可以使重播/重新创建通信协议变得更加困难: 需要客户端证书才能连接HTTPS 频繁

如何创建
应用程序
与my
WebAPI
交互。应用程序会将一些信息发送到我的网站(
WebAPI
),然后我会用这些信息更新我的数据库,但问题是如何保护它,所以只有我的应用程序可以与我的网站交互


设计用于部署到多台计算机的应用程序。用户可以匿名使用该应用程序。例如,您不能将对网站(或任何IP端口)的访问限制为仅一个应用程序

在服务器上验证请求,可能只允许经过身份验证的用户访问-这对于大多数情况(付费游戏除外)应该足够了

您可以使重播/重新创建通信协议变得更加困难:

  • 需要客户端证书才能连接HTTPS
  • 频繁更改客户端和协议本身的代码
  • 仅允许经过身份验证的用户
  • 对来自同一用户的请求进行速率限制,以使协议更难得到尊重
应用程序是部署在一台计算机上,还是部署在多台计算机上?您可以让应用程序发送登录凭据,或允许基于IP地址进行访问。或者使用数字证书。但我不知道你怎么知道这些请求是来自你的应用程序。毕竟,如果一个应用程序可以被计算机使用,它可以被人阅读,你的应用程序使用的协议也可以被欺骗。是的,我知道如果用户获得了客户端,我对它没有控制权,但我想保护它,因此,对我的应用进行反向工程/欺骗并不是那么容易。MixedCoder:那为什么需要进行任何授权呢?在下兔子洞之前,考虑问题解决的本质。您有一个允许未知用户将信息发布到您的服务器的应用程序,并且您希望阻止未知用户将信息发布到您的服务器?该站点允许从网站匿名上传图像。我想说,该应用程序通过与网站相同的API上传图像。我想说的是,如果最终用户复制了网站的源代码,他们可以使用相同的方法构建一个应用程序,自己上传图像。@MixedCoder:他们可能对什么是“有效”或“无效”有一些定义。我不熟悉他们的代码或功能,所以我不知道这个定义是什么。关键是,你似乎完全走错了路。询问如何沿着这条路走对我们来说是陌生的,因为这条路本身没有多大意义。为什么只希望应用程序连接到服务器?你想阻止什么?如果服务器工作正常,那么请求从哪里来又有什么关系呢?