我試圖在WCF服務中檢索登錄的Windows用戶。 我試過使用ServiceSecurityContext,但當前始終爲空。WCF中的ServiceSecurityContext.Current爲空
ServiceSecurityContext.Current.WindowsIdentity.Name
我也試過使用OperationContext。在這種情況下,ServiceSecurityContext返回爲空。
OperationContext.Current.ServiceSecurityContext.PrimaryIdentity.Name
這裏是我的web.config:
<bindings>
<basicHttpBinding>
<binding name="HttpWindowsBinding">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" />
</security>
</binding>
</basicHttpBinding>
</bindings>
也
<authentication mode="Windows"/>
有人能看到我在做什麼錯?
更新: 我放棄了試圖讓ServiceSecurityContext工作。最後,我通過設置aspNetCompatibilityEnabled =「true」找到了解決方案。
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />
我還增加了以下屬性我的服務類:
[System.ServiceModel.Activation.AspNetCompatibilityRequirements(RequirementsMode = System.ServiceModel.Activation.AspNetCompatibilityRequirementsMode.Required)]
這讓我檢索與Windows用戶:
HttpContext.Current.User.Identity.Name
我希望您已將此綁定配置「HttpWindowsBinding」添加到您的服務中的端點。 – vibhu
我有。還是行不通。 – ijason03