我正在尝试使用MVC2作为我的iPhone应用程序的中间层。这里的基本原则是MVC站点将公开app,允许用户从iPhone发布数据,并从MVC app后面运行的sql数据库获取数据。MVC2项目将促进来回逻辑。
我对此有几个问题……1.保护MVC应用程序的最佳方式是什么,以便只有被识别的iPhones才能访问GET/POST方法? 2.我是否可以使用SQL Server的共享宿主帐户并开始将我的数据库连接指向它? 3.关于最好地实现此方法,还有其他想法吗?
我是MVC的新手,但对使用它感到非常兴奋……
谢谢!
发布于 2010-04-27 00:37:01
我不确定你的帖子到底有多少是关于asp.net MVC的。
您的第一个问题是如何保护应用程序,以便只有被识别的iPhones才能访问GET/POST方法。这听起来更像是一个HTTP问题,我猜这取决于你对“安全”的定义以及你想要做什么。您可以潜在地从iPhone发送许可证密钥(我假设是通过HTTPS )并对其进行身份验证。然而,没有什么能阻止别人分享这个密钥或在非iPhone上使用它。您可以在注册时创建一个散列或其他东西,然后对照它进行验证(想想Windows验证),这可能会有所帮助,但总会有方法绕过这一点。简而言之,您将无法真正测试“注册的iPhones",而是您定义为”注册的iPhone“的东西,它可能会被欺骗,但”足够好“满足您的需求。
在MVC中,验证应该在属性级别进行--您可以用某种验证属性来修饰您的操作。内置的一个称为Authorize,它与内置的ASP.NET成员一起工作。这听起来不像是您想要使用的,所以您可能需要构建自己的属性来自己验证HTTP请求。
关于使用共享主机账号,我不确定这个问题。您是否在询问共享主机帐户是否可以满足您的需求?我不知道你需要什么,但是共享主机可以容纳1) SQL和2) ASP.NET数据库。
发布于 2010-04-27 00:58:30
这是一个非常高层次的问题……
在这种情况下,我会做的是以某种方式将一个唯一的密钥绑定到手机或user+phone上(取决于iPhone的工作方式-它可以容纳多个用户吗?)。有很多方法可以做到这一点,但一种流行的方式是让用户在您的网站上进行身份验证,并将他们的手机链接到他们的帐户。在此过程中,您需要向电话发送一个唯一的密钥,以供后续请求使用。
这为您提供了一些东西:
操作的基本安全性-您可以根据数据库验证传入的密钥,以查看它是否被允许
用户连接-允许您轻松地将用户数据存储在您的站点上,并让您立即知道是谁在连接
要真正做到这一点,你应该按照统计属性建议的那样去做。我这样做是为了根据特定操作的角色要求来验证用户。
共享主机可能会起作用,但如果你的应用程序成功了,你可能需要更多的能力。云托管在这里可能是有益的,因为您可能每天都会有高峰/高峰时段和低使用率时段。
发布于 2011-02-07 04:18:36
如果这没有实际的用户界面,并且只用于传输数据,那么您最好创建一个WCF web服务作为您的项目。然后,您可以在您的iphone应用程序中使用此web服务,使用的内容类似于详细的in this blog post.
Web服务就是针对这种情况而设计的,它提供了许多身份验证和安全性的方法。另外,它更像是RESTful。
https://stackoverflow.com/questions/2714954
复制相似问题