【问题标题】:How can I get the user calling a web service even though the ws is being impersonated?即使 ws 被模拟,如何让用户调用 Web 服务?
【发布时间】:2012-05-04 08:02:05
【问题描述】:

我有一个基本上是 web 服务的应用程序,它连接到一个 sql db,在 web config 的 impersonate 标记中具有特定的用户凭据。

我想知道是否可以获取调用此网络服务的用户名。

我的网络配置如下所示:

<identity impersonate="true" userName="db_user" password="db_pass" />

我正在使用以下凭据发出 http 请求:

request.Credentials = new NetworkCredential("request_user", "request_pass");

在 web 服务的 webmethod 内部,我尝试使用以下代码行来获取请求用户,但它们都返回相同的用户,即模拟用户 -(

System.Security.Principal.WindowsIdentity.GetCurrent().Name //returns db_user
System.Environment.UserName //returns db_user
HttpContext.Current.User.Identity.Name //returns db_user

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

【问题讨论】:

    标签: c# .net web-services impersonation


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-18
        • 1970-01-01
        • 2017-04-05
        • 1970-01-01
        相关资源
        最近更新 更多