Thread.CurrentPrincipal列出了POST请求,但没有GET请求

时间:2012-04-03 23:58:37

标签: .net wcf rest c#-4.0 httpcontext

我有一个托管在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>

0 个答案:

没有答案