上下文
Stack和Bing上有一些线程可以讨论WCF和与ASP.NET的会话共享。没有完全满足我的问题。所以这里:
我有一个MVC网站,在“/ services”路径下的RouteTable中也有一些服务。一切都很好。我可以调用Controller动作和WCF服务方法。
我已使用WIF启用了Federated Authentication和Windows 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代码时,会话已经到位了!
这怎么可能?
干杯,
马格努斯
答案 0 :(得分:0)
这可能是Stackoverflow的问题,但是当我将配置复制到notepad ++时,我在AuthenticationManager类型值中看到了一些垃圾字符:。
问题的其余部分是,您在此处显示的元素之前是否有<clear />
元素?