【问题标题】:WCF FederatedAuthentication session state messes with ClaimsAuthorizationManagerWCF FederatedAuthentication 会话状态与 ClaimsAuthorizationManager 混淆
【发布时间】:2011-10-28 02:55:41
【问题描述】:

上下文:

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

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

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

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


设置:

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

让我头疼的是自定义 ClaimsAuthorizationManager。

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


问题:

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

这没有任何意义!看来我的会话没有在 ClaimsAuthorization 管理器内部膨胀,而是在我点击自己的 WCF 代码时,会话就位!

这怎么可能?

干杯,

马格纳斯

【问题讨论】:

  • 你能显示你指定 ClaimsAuthorizationManager 类的配置吗?
  • 我得出的结论是这是一个配置问题。要么我的 WCF 身份验证不正确,要么 ASP.NET 应用程序出现问题,并且 WCF 服务不能很好地协同工作。

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2011-01-12
    • 2011-03-04
    • 2015-01-17
    • 2016-10-03
    • 2017-05-07
    • 1970-01-01
    • 2021-04-12
    • 2010-11-05
    • 1970-01-01
    相关资源
    最近更新 更多