关于物理三层架构的问题

[复制链接]
查看11 | 回复9 | 2021-1-27 07:20:45 | 显示全部楼层 |阅读模式
各位好,现在遇到个问题。
客户的网络环境要求按Web,app,DB物理三层开发网站。
最初的方式是将mvc的网站部署到appserver上,然后通过在Web服务器上部署nginx反向代理到app服务器。
通过app服务器连接数据库。这是完全没有问题的。
但现在客户要求通过他们公司的统一身份认证SiteMinder系统实现用户验证,这个统一身份认证相当于是个WebAgent,当用户访问我的网站URL时,被他截取到跳转到统一的login页面,用户登录后,在redirect到我的网站,返回一个cookie信息。
背景描述完了,现在说我的问题。这种统一身份认证的东西只能部署到iis这种中间件上,nginx是不可能了。
所以我必须要在Web服务器上安装iis才可以。但如果是这种情况,基本上只能将mvc的网站部署到Web层的服务器上了。
而这层是不可能访问到数据库的。
想问问各位有没有什么好的方法,让mvc访问的数据库,在appserver上通过什么样的技术能够让web访问到数据库,前提防火墙是肯定不能开了。
WCF这种方式,需要做的事情就太多了。
希望各位帮忙,万分感谢。
分 -->
回复

使用道具 举报

千问 | 2021-1-27 07:20:45 | 显示全部楼层
appserver是什么东西?
它和webserver之间有有什么关系?
防火墙是防啥的?
回复

使用道具 举报

千问 | 2021-1-27 07:20:45 | 显示全部楼层
引用1楼shingoscar的回复:appserver是什么东西?
它和webserver之间有有什么关系?
防火墙是防啥的?

客户给的定义是applicationserver,相当于是服务层。
Web是前端,数据请求通过appserver,app去链接数据库。
防火墙防止web服务器直接链接数据库。
回复

使用道具 举报

千问 | 2021-1-27 07:20:45 | 显示全部楼层
云亮你怎么跑这来了……
认证后的cookie理论上应该返回你的应用层,再由应用层返回给web层
但是看起来开始的时候你们就没按照客户的要求做,这么分层的意义也就没有了,不如只分两层
回复

使用道具 举报

千问 | 2021-1-27 07:20:45 | 显示全部楼层
用webApi罗,比较简单。
回复

使用道具 举报

千问 | 2021-1-27 07:20:45 | 显示全部楼层
面向接口编程,同5楼
把接口层webservice,webapi部署到app服务器
mvc和其他所有的相同处理逻辑,都调用接口
回复

使用道具 举报

千问 | 2021-1-27 07:20:45 | 显示全部楼层
其实用wcf倒是正确的解决方式,不过的确要改不少倒是真的。我有个想法,你可以判断下是否可行。你现在做法貌似是把SiteMinder整合到你的网站一起并放在iis上,你有没想过是否可以把你的网站和SiteMinder分开部署,看作两个网站,然后第三方联合登录的方式,进行验证和跳转,就类似现在很多网站允许qq,新浪等其他账号登陆平台一样的做法,登陆完了再跳转回自己站点。
回复

使用道具 举报

千问 | 2021-1-27 07:20:45 | 显示全部楼层
引用2楼yun_liang1028的回复:Quote: 引用1楼shingoscar的回复:
appserver是什么东西?
它和webserver之间有有什么关系?
防火墙是防啥的?

客户给的定义是applicationserver,相当于是服务层。
Web是前端,数据请求通过appserver,app去链接数据库。
防火墙防止web服务器直接链接数据库。

web和app之间也是能交互的咯
不就是定好协议,让app那边把数据拉回来么?
回复

使用道具 举报

千问 | 2021-1-27 07:20:45 | 显示全部楼层
引用3楼FoxDave的回复:云亮你怎么跑这来了……
认证后的cookie理论上应该返回你的应用层,再由应用层返回给web层
但是看起来开始的时候你们就没按照客户的要求做,这么分层的意义也就没有了,不如只分两层

这都被你发现了....
cookie是解决不了问题的...
回复

使用道具 举报

千问 | 2021-1-27 07:20:45 | 显示全部楼层
引用7楼xdashewan的回复:其实用wcf倒是正确的解决方式,不过的确要改不少倒是真的。我有个想法,你可以判断下是否可行。你现在做法貌似是把SiteMinder整合到你的网站一起并放在iis上,你有没想过是否可以把你的网站和SiteMinder分开部署,看作两个网站,然后第三方联合登录的方式,进行验证和跳转,就类似现在很多网站允许qq,新浪等其他账号登陆平台一样的做法,登陆完了再跳转回自己站点。
我在研究研究看,有没有更好的方式,如果没有,只能用WCF了,就是工作量太大。实际上siteminder并没有整合到我的网站里,他是个单独的安装程序,他会在IIS里创建一个网站,添加filter,截取我的网站访问请求,在跳转他自己的login页面上,用户登录成功以后,在跳转回我的网站,他会在请求里添加一个siteminder的认证cookie,我通过这个cookie验证是否是合法的登录。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行