AJAX,WCF和身份验证问题

时间:2011-09-29 05:52:35

标签: .net ajax wcf wcf-security

我正在开发一个无法进行宣传的网站。也就是说,它在互联网上,但你必须登录才能访问该网站,你无法注册或任何东西,它为特定行业提供服务。

我们正在将部分功能转移到移动网站,这是一个专门针对日常需求的真正缩减版,适合屏幕尺寸,无需缩放和滚动等。

这一切都很好。

该网站在某些领域相当繁琐,而不是做ASP.NET Posts,我们将使用jQuery做很多AJAX,我们想做的是将一些任务卸载到其他服务器并提供用于获取/放置数据的WCF服务。

我的问题是,锁定这些WCF服务的最佳方法是什么,以便无法在初始网站的外部访问它们,并且您必须登录才能触摸它们。

我的想法是拥有一个处理程序,这是我们从网站上触摸的,处理程序将调用WCF服务,该服务只会暴露给我们的内部服务器。这意味着WCF服务不需要公开,但处理程序将在我们现有的域和现有的表单身份验证之下。

如果这是有道理的。

这是一种很好的方法,还是应该使用时间戳和令牌来验证对公开公开的WCF服务的请求。

编辑: WCF, RESTful Web Services and custom authentication

^这是我能找到的最接近我需要做的事情,但是想知道是否有一个更好的解决方案,对于那些没有,并且永远不会公开面对的事情。

1 个答案:

答案 0 :(得分:0)

使用HTTP模块,您可以将自定义身份验证添加到IIS托管的WCF服务。然后,您可以实现通过HTTP标头或查询参数传递的OAuth 2 Bearer token保护。它本质上是通过时间限制密码,所以你需要通过https执行此操作,但它可以很容易地被jQuery或任何可以使用https的东西使用。模块可以在当前线程上设置Principal信息,您可以从WCF访问。

对于OAuth 2的其余部分,请参阅Facebook的Authentication