WCF FederatedAuthentication会话状态与ClaimsAuthorizationManager混淆

时间:2011-08-16 14:17:38

标签: wcf asp.net-mvc-3 session wif federated-identity

上下文

Stack和Bing上有一些线程可以讨论WCF和与ASP.NET的会话共享。没有完全满足我的问题。所以这里:

我有一个MVC网站,在“/ services”路径下的RouteTable中也有一些服务。一切都很好。我可以调用Controller动作和WCF服务方法。

我已使用WIF启用了Federated AuthenticationWindows Azure Access Control Service (ACS)。这也很好用。我可以使用Facebook,Google等登录,并在我的网站上明确建立会话。我可以调用MVC控制器操作和WCF方法。在当前用户的IPrincipal的主体内部设置为我当前的会话。

现在我想成为一个好孩子并使用自定义ClaimsAuthenticationManager and a custom ClaimsAuthorizationManager。现在出现了一个奇怪的问题:


设置:

对于这种情况,我已登录。我有一个会话。我可以在我的MVC控制器方法的方法体和我的WCF服务方法中确认这一点。这意味着我们可以保留自定义的ClaimsAuthenticationManager,因为当我已经有会话时它没有被触及。

这是我自己头疼的自定义ClaimsAuthorizationManager。

当我调用MVC站点时,我通过ClaimsAuthorizationManager.CheckAccess方法内部的会话以及我的MVC控制器操作的主体内部进行了身份验证。到目前为止一切都很好。


问题:

当我调用WCF服务时,我没有使用ClaimsAuthorizationManager.CheckAccess方法中的会话进行身份验证,但是当我在WCF服务方法中点击断点时,我(突然)进行了身份验证。

这没有任何意义!似乎我的会话在ClaimsAuthorization管理器内部没有膨胀,但是当我点击我自己的WCF代码时,会话已经到位了!

这怎么可能?

干杯,

马格努斯

1 个答案:

答案 0 :(得分:0)

这可能是Stackoverflow的问题,但是当我将配置复制到notepad ++时,我在AuthenticationManager类型值中看到了一些垃圾字符:enter image description here

问题的其余部分是,您在此处显示的元素之前是否有<clear />元素?