我在同一个项目中同时拥有wcf和asp.net项目。 (我在Azure上运行,所以这更方便)。
我在web.config中设置了这个:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
我的wcf服务装饰有:
[AspNetCompatibilityRequirements(
RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
设置了这些属性后,当我在wcf服务中运行方法时,不应该为我自动设置HttpContext.Current.User吗?目前,HttpContext.Current.User为null,不会自动为我设置。
我想如果我使用了aspNetCompatibilityEnabled,那么当执行wcf方法时,Application_AuthenticationRequest方法会在Global.asax中触发,但事实并非如此。
.aspxauth cookie正确传递给wcf服务,我能够手动解密cookie并设置当前用户。
建议为什么这不符合我的预期?
答案 0 :(得分:0)
您是否在
中获得了预期的用户身份ServiceSecurityContext.Current.PrimaryIdentity
在服务器方法代码中可用的字段?它应该是某种形式的IIdentity
后代,为您提供用户信息(如果有)。