Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.Net MVC2通过令牌和其他方式保护站点_C#_Asp.net Mvc_Asp.net Mvc 2 - Fatal编程技术网

C# ASP.Net MVC2通过令牌和其他方式保护站点

C# ASP.Net MVC2通过令牌和其他方式保护站点,c#,asp.net-mvc,asp.net-mvc-2,C#,Asp.net Mvc,Asp.net Mvc 2,我正在尝试使用MVC2作为我的iPhone应用程序的中间层。这里的基本原则是MVC站点将公开API,允许用户从iPhone发布数据,并从运行在MVC应用程序后面的sql数据库获取数据。MVC2项目将促进往返逻辑 关于这一点我有几个问题。。。 1.保护MVC应用程序的最佳方式是什么,这样只有认可的iPhone才能访问GET/POST方法? 2.我可以使用SQL Server的共享主机帐户并开始将我的数据库连接指向它吗? 3.关于如何最好地实现这一点,还有其他想法吗 我对MVC很陌生,但对使用它很兴

我正在尝试使用MVC2作为我的iPhone应用程序的中间层。这里的基本原则是MVC站点将公开API,允许用户从iPhone发布数据,并从运行在MVC应用程序后面的sql数据库获取数据。MVC2项目将促进往返逻辑

关于这一点我有几个问题。。。 1.保护MVC应用程序的最佳方式是什么,这样只有认可的iPhone才能访问GET/POST方法? 2.我可以使用SQL Server的共享主机帐户并开始将我的数据库连接指向它吗? 3.关于如何最好地实现这一点,还有其他想法吗

我对MVC很陌生,但对使用它很兴奋


谢谢大家!

我不确定你的帖子实际上有多少是关于asp.net MVC的

您的第一个问题是如何保护应用程序,以便只有已识别的iPhone才能访问GET/POST方法。这听起来更像是一个HTTP问题,我想这取决于您对“安全”的定义以及您的目的。您可以从iPhone发送许可证密钥(我假设是通过HTTPS),并对其进行身份验证。然而,没有任何东西可以阻止某人共享此密钥或从非iPhone使用此密钥。您可以在注册时创建一个散列或其他内容,然后根据它进行验证(想想Windows验证),这可能会有所帮助,但总会有办法解决这个问题。简言之,你将无法真正测试“注册iPhone”,而是你定义为“注册iPhone”的东西,它可能被欺骗,但“足够好”满足你的需求

在MVC中,验证应该在属性级别进行——您可以使用某种验证属性来装饰您的操作。内置的名为Authorize,可与内置的ASP.NET成员身份一起使用。这听起来不像是您想要使用的,因此您可能希望自己构建自己的属性来验证HTTP请求


关于使用共享托管帐户,我不确定这个问题。你是在问共享托管帐户是否能满足你的需要?我不知道您的需要,但共享主机当然可以容纳1)ASP.NET MVC和2)SQL数据库。

这是您要问的一个非常高层次的问题

在这种情况下,我会在手机或用户+手机(取决于iPhone如何工作-它能容纳多个用户?)上绑上一个唯一的键。这可以通过多种方式实现,但一种流行的方式是让用户通过您的站点进行身份验证,并将他们的手机链接到他们的帐户。在此过程中,您会向手机发送一个唯一的密钥,用于后续请求

这给了你一些东西:

操作的基本安全性-您可以针对数据库验证传入的密钥,以确定它是允许的,并且

用户连接-允许您轻松地将用户数据存储在您的站点“云中”,并让您立即知道谁正在连接

要真正做到这一点,您应该按照statichippo的建议使用该属性。我这样做是为了根据特定操作的角色需求验证用户


共享主机可能会工作,但如果你的应用程序成功,你可能需要更多的powa。云托管在这里可能是有益的,因为您可能每天都有高峰/高峰时段和低使用时段。

如果这没有实际的用户界面,只用于传输数据,您最好创建一个WCF web服务作为您的项目。然后,您可以从iphone应用程序中使用类似于详细说明的内容来使用此web服务

Web服务就是为这种情况而设计的,它提供了多种身份验证和安全性方法。另外,它更安静