【发布时间】:2011-11-09 22:24:33
【问题描述】:
我正在编写一个类来处理在 asp.net、WCF 服务和 WinForms 应用程序中使用的模拟和委托。
根据MSDN,WindowsIdentity.GetCurrent() 返回代表当前 Windows 用户的 WindowsIdentity 对象。
和
根据MSDN,WindowsIdentity.Impersonate 允许代码模拟不同的 Windows 用户。
那么,模拟当前用户有什么影响,更重要的是,在 Web 应用程序中,WindowsIdentity.GetCurrent() 除了进程启动者身份或已经模拟的最终用户之外,如何返回?
【问题讨论】:
-
这是一个很长的故事并且有很多限制,但是假设您想代表您的用户(使用他的凭据)在您的网络应用程序中执行操作,例如阅读电子邮件并在页面中显示,这就是模仿的用武之地。
-
@Russell McClure 我有 web 应用程序和 winforms 应用程序。问题是使用 Kerberos 使用自己的权限将用户传递到 SQL 服务器,但使用进程启动器身份进行日志记录。
-
Windows 安全性与用户帐户的权限密切相关。尝试为现有帐户分配权限很困难且容易出错。冒充其他用户,获得所需的权限。