2012-08-27 149 views
2

我目前正在通过WCF数据服务(System.Data.Services)实现RESTful服务。 我的REST风格的服务托管在窗口服务中。没有涉及IIS。wcf数据服务自托管凭证

该服务工作正常,但它无法连接到我的SQL数据库,因为它需要模拟。

在一个正常的WCF服务中,我可以通过访问WindowsIdentity的ServiceSecurityContext来模拟。不幸的是,对于WCF数据服务,ServiceSecurityContext为null,而且我没有httpContext,因为它托管在窗口服务中。

我目前的解决方法是在我的窗口服务设置一个固定的凭据。虽然这对开发很好,但它不被生产所接受。

是否有可能获得调用者的身份,以便我可以使用身份到sql服务器?如何?

回答

1

您可以尝试使用: System.ServiceModel.OperationContext.Current.ServiceSecurityContext.WindowsIdentity