1

我在同一台服务器上运行的 ASP.NET MVC 上有两个不同的应用程序。

这两个应用程序都针对同一个数据库工作,但向用户显示不同的数据(它们也被不同的用户使用)。

事实上,在第一个创建的应用程序的模型上有一些我想在第二个应用程序上使用的方法,我不想复制这些方法背后的模型逻辑。

所以现在我正在使用从一个应用程序到另一个应用程序的服务器调用,该调用执行一个控制器,该控制器调用目标方法并返回响应。

它工作正常,但我不喜欢让这个控制器对任何调用它的用户开放。这不是特别重要的信息,但在我看来这是一个严重的安全问题。

所以我一直在研究不同的选择。

  • 我可以让那个特定的控制器向任何知道它在那里的人开放。坏的。
  • 在调用该方法时,我可以在某种程度上提示用户登录。但是请愿书对用户是透明的,所以我想以这种方式维护它。
  • 我可以在两个应用程序之间详细说明类似于通过 oAuth 协议进行身份验证的令牌舞蹈,以确保 app1 接受 app2 上的登录并在没有直接登录的情况下执行,但这似乎需要做很多工作,因为总体上应该很轻松项目。
  • 我可以让控制器向任何人开放,但在执行时检查请求来自的机器,如果它与正在运行的服务器不同(两个应用程序在同一台服务器上运行)则抛出异常,而不是返回结果。

此时此刻,我最喜欢的想法是最后一个。我想知道那里是否有人看到任何我不知道的明显禁忌,或者可以提出更好的方法来解决这个问题。

此外,我在检查应用程序服务器和请求机器时遇到了困难。任何人都可以了解我如何检查这个?

4

1 回答 1

0

也许您的应用程序根本不应该通过 HTTP 进行通信。也许您可以将公共代码移动到您可以共享的库项目中。

我了解这两个应用程序都可以完全访问同一个数据库。这将在该模型下运行良好。

于 2013-08-26T11:55:48.373 回答