是否有标准/典型方式将凭据转发到后端Web服务?

时间:2011-06-24 16:51:01

标签: asp.net web-services authentication

这是设置: 1.前端网站,表单身份验证 2.后端Web服务(可能是WCF),在启用了HTTPS的不同网络上。

因此前端代码通过这些后端Web服务检索数据。

后端Web服务本身需要对用户请求进行身份验证。后端Web服务不只是将数据分发给前端服务,相信它没问题。

那怎么办?现在唯一想到的是在登录期间,将密码存储在加密的表单auth cookie的UserData字段中,以便将来的请求可以使用它来访问后端。但男孩确实感到icky。

这似乎是一种非常常见的设置,但我无法通过Google搜索找到任何好的想法。

请注意,前端将是一个MVC应用程序,但我不认为MVC / Web窗体会很重要 - 任何解决方案都可能适用于两者。

1 个答案:

答案 0 :(得分:0)

来自观众的蟋蟀........

我决定采用的策略如下:

登录后,前端网站会创建普通表单身份验证票证。它还调用后端Web服务登录功能,该功能还将实现表单身份验证。后端Web服务返回的ASPXAUTH cookie将存储在前端表单身份验证cookie的UserData属性中。

现在,当前端需要调用后端方法时,它具有后端表单身份验证cookie,存储在前端表单身份验证票证的UserData中。它可以将其附加到WCF HTTP调用以进行身份​​验证。

我能看到的最大危险是会话超时可以相互抵消,特别是如果用户浏览前端的一些不需要后端呼叫的页面。在这种情况下,滑动计时器将在前端重置但不在后端重置。我能想到的最好的反击是,如果他们主动登录,则前端的所有请求都会在后端调用Ping()方法。

有人在这个策略中看到任何漏洞吗?