C# 应用程序之间的置信规则
我在ASP.NET MVC上有两个不同的应用程序运行在同一台服务器上 这两个应用程序针对同一个数据库工作,但向用户显示不同的数据(它们也被不同的用户使用) 事实上,在第一个创建的应用程序的模型上有一些方法,我想在第二个应用程序上使用,我不想重复这些方法背后的模型逻辑 所以现在我使用一个从一个应用程序到另一个应用程序的服务器调用,该调用执行一个调用目标方法并返回响应的控制器 它工作正常,但我不想让任何调用它的用户打开这个控制器。这不是特别重要的信息,但在我看来,这是一个严重的安全问题 所以我一直在研究不同的选择C# 应用程序之间的置信规则,c#,asp.net-mvc,C#,Asp.net Mvc,我在ASP.NET MVC上有两个不同的应用程序运行在同一台服务器上 这两个应用程序针对同一个数据库工作,但向用户显示不同的数据(它们也被不同的用户使用) 事实上,在第一个创建的应用程序的模型上有一些方法,我想在第二个应用程序上使用,我不想重复这些方法背后的模型逻辑 所以现在我使用一个从一个应用程序到另一个应用程序的服务器调用,该调用执行一个调用目标方法并返回响应的控制器 它工作正常,但我不想让任何调用它的用户打开这个控制器。这不是特别重要的信息,但在我看来,这是一个严重的安全问题 所以我一直在
- 我可以让那个特定的控制器向任何知道它在那里的人开放。糟糕
- 我可以在调用该方法时提示用户登录。但是请愿书对用户是透明的,所以我希望以这种方式维护它
- 我可以详细说明两个应用程序之间的令牌舞蹈,类似于通过oAuth协议进行身份验证,以确保app1接受app2上的登录并在没有直接登录的情况下执行,但这似乎是整个项目中非常轻松的工作
- 我可以让控制器向任何人开放,但在执行时,请检查来自请求的机器,如果它与正在运行的服务器(两个应用程序都在同一台服务器上运行)不同,则引发异常,而不是返回结果
另外,我在检查应用服务器和请求机器时遇到了困难。任何人都可以告诉我如何检查这一点?也许你的应用程序根本不应该通过HTTP进行通信。也许您可以将公共代码移动到一个可以共享的库项目中
我知道两个应用程序都可以完全访问同一个数据库。这将在该模型下很好地工作。或者,将代码移动到公共库。+1到@usr,我正要编写相同的。或者,将两者通用的方法提取到可由两个web应用程序调用的服务中。存在中长期两个应用程序不再位于同一服务器的可能性。在这种情况下,使用公共库不会有问题吗?@Bardo没有问题,因为两个应用程序仍然可以访问SQL Server数据库。他们根本不需要互相交谈。