【问题标题】:Client username/windowsIdentity from web service来自 Web 服务的客户端用户名/windowsIdentity
【发布时间】:2011-02-16 01:24:27
【问题描述】:

如何在不模拟的情况下从 Web 服务获取客户端的 WindowsIdentity?

模仿有什么好处和坏处?

【问题讨论】:

    标签: c# .net wcf web-services


    【解决方案1】:

    添加对 System.Web 的引用并使用以下代码:

    HttpContext.Current.User.Identity.Name
    

    【讨论】:

    • 它总是为空,有什么建议吗?
    • 将 aspNetCompatibilityEnabled 设置为 true:
    【解决方案2】:

    模拟允许服务调用其他内容,同时充当调用服务的用户。要获取调用服务的用户的身份,您不需要模拟(但您确实需要启用身份验证)。

    【讨论】:

    • 什么时候需要模拟?不是更好地用于审计目的吗?
    • 只有当服务需要对调用服务的用户的用户帐户做某事时,才需要模拟。假设服务需要读取 c:\asdf.txt 并且需要以 Bob(调用该服务的人)的身份进行。通常您不需要模拟,因为该服务具有必要的权限。 (您可能需要它的一种情况是,当一个服务以调用第一个服务的用户身份调用另一个服务时,这会变得非常复杂。)
    猜你喜欢
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    • 2017-07-07
    • 2020-10-23
    • 2011-01-06
    相关资源
    最近更新 更多