【问题标题】:Impersonation in ASP.NET 2.0ASP.NET 2.0 中的模拟
【发布时间】:2009-05-07 07:30:46
【问题描述】:

美好的一天,

我的 Web 应用设置为使用 Windows 身份验证,并且 Impersontation 设置为 true。

我不想使用已登录的用户帐户启动进程。但是,当我尝试启动 notepad.exe 时,它​​是作为网络服务运行的。

我尝试了不同的模仿技术,但都没有奏效。

请帮忙。

http://msdn.microsoft.com/en-us/library/ms998351.aspx#paght000023_impersonatingbyusingwindowsidentity

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    简单的模拟不允许您以其他用户身份启动进程。您必须使用 Windows API 中的 CreateProcessAsUser 以及适当的权限

    CreateProcessAsUser 函数不需要用户的密码。它需要一个 primary 令牌,该令牌可以从 System.Security.Principal.WindowsIdentity 对象获得。您的 ASP.NET 进程必须具有充当操作系统的一部分权限才能获得模拟级别的令牌。

    How To: Use Impersonation and Delegation in ASP.NET 2.0 拥有该主题的所有详细信息。

    一个也可能相关的相关问题是:Using Process.Start() to start a process as a different user from within a Windows Service.

    【讨论】:

    • 我们不希望用户再次重新提供密码。由于我们使用的是 Windows 身份验证,因此用户使用他的域帐户登录。使用 User.Identity.Name 表明当前用户已成功使用该帐户进行身份验证。我们只想使用用户提供的帐户运行一个进程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-09
    • 2011-02-08
    • 2021-05-28
    • 2011-05-11
    • 2010-09-29
    相关资源
    最近更新 更多