我有一个基本上是Web服务的应用程序,它连接到Web配置中impersonate标记中具有特定用户凭据的sql db。
我想知道的是,是否可以获取呼叫此网络服务的用户名。
我的网页配置如下:
<identity impersonate="true" userName="db_user" password="db_pass" />
我使用以下凭据发出http请求:
request.Credentials = new NetworkCredential("request_user", "request_pass");
在web服务的web方法中,我尝试以下代码行来获取请求用户,但他们都返回同一个用户,即模仿用户 - (
System.Security.Principal.WindowsIdentity.GetCurrent().Name //returns db_user
System.Environment.UserName //returns db_user
HttpContext.Current.User.Identity.Name //returns db_user
我清楚了吗?希望有人能帮助我,谢谢!
答案 0 :(得分:0)
将用户名传递给网络服务。
答案 1 :(得分:0)
我所做的是在IIS中创建一个新的应用程序池,并使其以访问数据库所需的用户身份运行,然后模拟Web服务。