防止对我的Web服务进行不必要的访问

时间:2014-08-18 07:28:32

标签: c# web-services asp.net-mvc-5 asp.net-web-api2 android-webservice

我编写了一个C#MVC5 Internet应用程序,我有一个返回JSON数据的Web API 2 Web服务。我正在Android应用程序中检索此JSON数据。

如何向Web服务添加功能,以便只有我的Android应用程序才能检索JSON数据?我想这样做,以便其他网站用户无法敲击网址,网络服务也不会将我的数据发送给不需要的应用程序和/或用户。

这可能吗?如果是这样,我该怎么做?

提前致谢。

3 个答案:

答案 0 :(得分:0)

事实上,您有多种方法可以实现这一目标。

例如,您可以在Android应用程序中存储密钥,并将此密钥与请求一起发送到您的WebAPI。您的webAPI将检查它们的密钥是否有效,如果是,它将返回JSon。

但是,没有办法确保没有其他人可以请求并获取您的数据。例如,通过对您的Android应用程序进行逆向工程并提取密钥,或者通过监控网络流量并在那里找到密钥。

您需要了解没有保证100%安全的权利。

请参阅以下内容:

你现在有一扇敞开的门,你可以一点一点地关闭它,但关闭和锁定是不可能的。总会有差距。房子也不能通过防盗证明,但是你可以让一个虫子很难进入。

答案 1 :(得分:0)

转到此链接Web Api。我已经为我的web api使用了个人身份验证。当您注册用户时,您将获得的响应是​​访问令牌,如果您使用Jquery ajax来调用Web Api,则在您的ajax调用中将该访问令牌用作Authentication头。请参阅此The OAuth 2.0 Authorization Framework。希望这能帮助你。

答案 2 :(得分:-3)

你正在寻找这样的东西吗? http://httpd.apache.org/docs/2.2/howto/access.html

如果您有其他Web服务器,则应该有适当的方法来支持此类服务器。