Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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
Asp.net mvc 在WebApplication前面添加安全层_Asp.net Mvc_Security_Iis 7 - Fatal编程技术网

Asp.net mvc 在WebApplication前面添加安全层

Asp.net mvc 在WebApplication前面添加安全层,asp.net-mvc,security,iis-7,Asp.net Mvc,Security,Iis 7,我们在单个应用程序中有一个基于RactJs/Asp.net MVC/WebAPI的web应用程序,在后端有SQL Server。应用程序目前为2层,使用owin中间件进行基于令牌的身份验证。应用程序运行良好 在构建应用程序以将应用程序转换为3层之后,有一些安全建议。我们建议将UI和API分为两个应用程序。拟定的控制流程如下所示: 静态内容(js、图像和css) 浏览器请求>IIS 静态视图 浏览器请求>IIS>UI应用程序-MVC控制器 数据API 浏览器请求>IIS>UI应用程序-Api控制器

我们在单个应用程序中有一个基于RactJs/Asp.net MVC/WebAPI的web应用程序,在后端有SQL Server。应用程序目前为2层,使用owin中间件进行基于令牌的身份验证。应用程序运行良好

在构建应用程序以将应用程序转换为3层之后,有一些安全建议。我们建议将UI和API分为两个应用程序。拟定的控制流程如下所示:

  • 静态内容(js、图像和css) 浏览器请求>IIS
  • 静态视图 浏览器请求>IIS>UI应用程序-MVC控制器
  • 数据API 浏览器请求>IIS>UI应用程序-Api控制器>服务应用程序-Api控制器>数据库
  • 这是直截了当的,API控制器将从服务应用程序获取数据,应用UI逻辑并将数据返回到视图。由于身份验证是基于令牌的,我们可以在UI和服务层验证身份验证。防伪将仅限于Web应用程序

    然而,客户希望有另一种方法。他们建议我们在浏览器和现有应用程序之间创建一个新应用程序(托管在IIS中)

    他们希望遵循以下方法:

  • 静态内容(js、图像和css) 浏览器请求>新应用>现有应用

  • 静态视图 浏览器请求>IIS新应用>现有应用-MVC控制器

  • 数据API 浏览器请求>新应用>现有应用-Api控制器>数据库

  • 他们希望通过新应用程序进行身份验证和防伪(以及未来的安全实施)。如果在新应用程序中一切顺利,请将传入的请求转发到旧应用程序

    我无法想象一个web应用程序的请求将如何传输到另一个web应用程序。下面是我能想到的方法-

  • Server.Transfer-一旦从一个应用程序中的安全检查传递了请求,我们就可以执行Server.Transfer。但限制条件是两个应用程序都必须在一台服务器上,而客户端说它必须在不同的服务器上

  • 在新应用程序中实现所有控制器方法,并从新应用程序发出包含所需详细信息(Get/Post/Delete&headers)的WebRequest,并将httpResponse原样返回到浏览器。使用httpmodule或Owin中间件进行安全检查

  • Apporach 2对于MVC视图和API来说似乎是可行的,但是我们如何将传入的请求转发到静态内容(JS、图像、css)

    解决这个问题的最佳方法/解决方案是什么。解决方案不必是.net/IIS