我目前正在通过WCF数据服务(System.Data.Services)实现RESTful服务。 我的RESTful服务托管在窗口服务中。没有涉及IIS。
该服务工作正常,但它无法连接到我的sql数据库,因为它需要模拟。
在普通的WCF服务中,我可以通过访问ServiceSecurityContext的WindowsIdentity进行模拟。不幸的是,对于WCF数据服务,ServiceSecurityContext为null,我没有httpContext,因为它是在窗口服务中托管的。
我目前的解决方法是在我的窗口服务中设置固定凭据。虽然这对于开发是好的,但是生产是不可接受的。
是否可以获取调用者的身份以便我可以使用该身份来访问sql server?怎么样?
答案 0 :(得分:1)
您可以尝试使用: System.ServiceModel.OperationContext.Current.ServiceSecurityContext.WindowsIdentity