gpt4 book ai didi

.net - NLog:记录在 IIS 中的 WCF 应用程序中调用该应用程序的用户

转载 作者:行者123 更新时间:2023-12-04 16:12:53 25 4
gpt4 key购买 nike

我有以下场景:

  • 作为 Windows 托管服务运行的已部署 WCF 服务。此 WCF 服务用于将特定事件记录到数据库 (NLog v2)。此服务使用 basicHttpBinding。
  • 在 IIS 下部署的 Web 应用程序(不同的服务器)。应用程序池在 NETWORK SERVICE 凭据下运行。 Web 应用程序身份验证与 Windows 集成(Active Directory 凭据)。

  • 每当我从控制台应用程序调用 WCF 时,我都可以从 System.Threading.Thread.CurrentPrincipal.Identity.Name 获取用户身份。 ;当我从 Web 应用程序调用它时,我希望得到 "DOMAIN\SERVER$"作为线程标识名称(按预期出现)。

    我的问题是:我想获得调用 Web 应用程序的用户。我已经尝试设置 AspNetCompatibilityRequirements WCF 服务契约(Contract)中的属性,但 ${asp-application} , ${aspnet-user-identity}${asp-request} NLog 中的参数读取为 null . HttpContext在 web 应用程序中是可以的,但它没有被发送到 WCF。有一个 Credentials属性(property)在 NLog.Logger类,但它是只读的。

    有谁知道如何解决它?

    最佳答案

    可能,您需要设置 impersonateCallerForAllOperations 属性

    详见 MSDN:http://msdn.microsoft.com/en-us/library/ms731306.aspx

    关于.net - NLog:记录在 IIS 中的 WCF 应用程序中调用该应用程序的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5955761/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com