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

解决方案 »

  1.   

    app server是什么东西?
    它和web server之间有有什么关系?
    防火墙是防啥的?
      

  2.   

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

  3.   

    云亮你怎么跑这来了……
    认证后的cookie理论上应该返回你的应用层,再由应用层返回给web层但是看起来开始的时候你们就没按照客户的要求做,这么分层的意义也就没有了,不如只分两层
      

  4.   

    用webApi罗,比较简单。
      

  5.   

    面向接口编程,同5楼
    把接口层webservice,webapi部署到app服务器
    mvc和其他所有的相同处理逻辑,都调用接口
      

  6.   

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

  7.   

    客户给的定义是application server,相当于是服务层。
    Web 是前端,数据请求通过app server,app 去链接数据库。
    防火墙防止web 服务器直接链接数据库。
    web和app之间也是能交互的咯
    不就是定好协议,让app那边把数据拉回来么?
      

  8.   

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

  9.   

    我在研究研究看,有没有更好的方式,如果没有,只能用WCF了,就是工作量太大。实际上siteminder并没有整合到我的网站里,他是个单独的安装程序,他会在IIS里创建一个网站,添加filter,截取我的网站访问请求,在跳转他自己的login页面上,用户登录成功以后,在跳转回我的网站,他会在请求里添加一个 siteminder的认证cookie,我通过这个cookie验证是否是合法的登录。