即使ws被假冒,我怎样才能让用户调用Web服务?

时间:2012-04-23 17:17:40

标签: c# .net web-services impersonation

我有一个基本上是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

我清楚了吗?希望有人能帮助我,谢谢!

2 个答案:

答案 0 :(得分:0)

将用户名传递给网络服务。

答案 1 :(得分:0)

我所做的是在IIS中创建一个新的应用程序池,并使其以访问数据库所需的用户身份运行,然后模拟Web服务。