我有一个托管在WebProject中的RESTful WCF应用程序。我正在使用HttpModule来验证传入请求的标头,如果标头和URL有效,我设置了
System.Threading.Thread.CurrentPrincipal = myCustomPrincipal;
这适用于GET请求,但是当我执行POST并检查Thread.CurrentPrincipal时,它被设置为WindowsPrincipal类的实例。我在一些博客文章中读到,HttpContext.Current.User和Thread.CurrentPrincipal都应该设置为相同的IPrincipal对象,但是当我分配
时HttpContext.Current.User = myCurrentPrincipal;
我的服务永远不会被点击,并且正在发送一条我从未真正分配的401 UnAuthorized消息。
note 我正在我的context_PostAuthorizeRequest方法中分配这些主体,这些方法已附加到上下文中,就像命名处理程序一样。
请帮忙。我究竟做错了什么?下面是我的webconfig的httpModules配置的一个例子:
<httpModules>
<add name="PublicServiceSecurity" type="Company.PublicService.PublicServiceSecurity,PublicService" />
<add name="ErrorModule" type="Company.Web.ErrorModule,WebComponentLibrary" />
<add name="HbnSessionModule" type="Company.Web.HbnSessionModule,WebComponentLibrary" />
</httpModules>