即使ws被模拟,我如何才能让用户调用Web服务?
问题描述:
我有一个基本上是Web服务的应用程序,它使用Web配置中的impersonate标记中的特定用户凭证连接到一个sql数据库。即使ws被模拟,我如何才能让用户调用Web服务?
我想知道的是,如果有可能获得调用此Web服务的用户名。
我的web配置是这样的:
request.Credentials = new NetworkCredential("request_user", "request_pass");
而web服务的的WebMethod内我试着下面的代码行:
<identity impersonate="true" userName="db_user" password="db_pass" />
进出口使用以下凭据发送HTTP请求以获取请求用户,但他们都返回相同的用户,即模拟用户 - (
System.Security.Principal.WindowsIdentity.GetCurrent().Name //returns db_user
System.Environment.UserName //returns db_user
HttpContext.Current.User.Identity.Name //returns db_user
我清楚了吗?希望有人能帮助我,谢谢!
答
将用户名传递给webservice。
答
我所做的是在IIS中创建一个新的应用程序池,并使其以访问数据库所需的用户身份运行,然后模拟Web服务。
谢谢,想出了一个更好的解决方案 – 2012-05-03 22:15:03