C# ASP.Net MVC2通过令牌和其他方式保护站点
我正在尝试使用MVC2作为我的iPhone应用程序的中间层。这里的基本原则是MVC站点将公开API,允许用户从iPhone发布数据,并从运行在MVC应用程序后面的sql数据库获取数据。MVC2项目将促进往返逻辑 关于这一点我有几个问题。。。 1.保护MVC应用程序的最佳方式是什么,这样只有认可的iPhone才能访问GET/POST方法? 2.我可以使用SQL Server的共享主机帐户并开始将我的数据库连接指向它吗? 3.关于如何最好地实现这一点,还有其他想法吗 我对MVC很陌生,但对使用它很兴奋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很陌生,但对使用它很兴
谢谢大家! 我不确定你的帖子实际上有多少是关于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服务就是为这种情况而设计的,它提供了多种身份验证和安全性方法。另外,它更安静