当我执行对WCF服务的调用时,HttpContext.Current.User.Identity丢失

时间:2017-07-19 15:59:08

标签: asp.net asp.net-mvc web-services wcf silverlight

首先,感谢大家与社区分享所有知识。

我目前有一个Silverlight应用程序,它消耗一些WCF服务。这些WCF服务使用自定义授权策略,该策略期望具有角色的Identity可以进行授权。

在这个应用程序中一切正常。我使用WCF创建一个通道,并将Identity从客户端传递到服务器。

当我尝试从另一个ASP Net MVC应用程序使用这些WCF服务时出现问题。我试图在这个新应用程序中复制web.config,以维护配置并尝试使其更容易。

在这个新的应用程序中,当我查看System.Web.HttpContext.Current.User.Identity类中的IAuthorizationPolicy变量时,它是空的,授权失败。

所以我做的下一个测试是在这个新应用程序中托管WCF,以避免站点之间的身份验证。我在网站中执行了FormsAuthentication并创建了一个用于存储用户信息的Cookie,当我在System.Web.HttpContext.Current.User.Identity类的HttpModule类的页面之间导航时,我调用了WCF服务此HTTModule类在System.Web.HttpContext.Current.User.Identity变量中没有值。

我被困了,因为我不明白这种行为。

如果在我的HttpModule类中总是返回一个新的固定GenericIdentity,那么当我使用自己应用程序中托管的WCF服务时,它可以正常工作。

如果我使用原始应用程序中托管的服务,虽然我在GenericIdentity中返回新的HttpModule,但它无效。

我已经花了几天时间处理这个问题,所以我需要你的帮助。我读了很多关于WCF架构的内容,但我需要一些人的线索。

提前致谢。

0 个答案:

没有答案