问题标签 [impersonation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
9936 浏览

c# - 通过 NTLM 模拟用户

我有一个具有两个安全级别的内部应用程序。面向客户端的应用程序的 FormsAuthentication 和管理界面的 NTLM 集成身份验证。

只需使用 FormsAuthentication 类的方法创建正确的 .ASPXAUTH cookie,我就可以轻松地模拟客户端。但是,到目前为止,为 NTLM 生成 HTTP 身份验证标头超出了我的范围。

当我发现这篇文章 ( http://msdn.microsoft.com/en-us/library/ms998358.aspx#paght000025_usingimpersonation ) 时,我充满了希望,但后来我意识到它只会创建一个上下文来运行代码一段时间的请求。而且我想切换我的整个会话以使服务器认为我正在使用另一个域登录。我对我的帐户拥有管理权限,所以这不是为了搞砸或窃取域密码。

甚至可能吗?谢谢。

0 投票
1 回答
1316 浏览

asp.net - 在 HttpHandler 中模拟 FormsAuthenticated 用户以进行 WCF 调用

我正在使用 HttpHandlers 使用经过身份验证的用户上下文“即时”生成 PDF 报告文件。但是,要创建报告 PDF 文件,我需要使用调用者(经过身份验证的用户)的上下文调用安全 WCF 服务上的方法。

我看到了很多关于 Windows 身份验证的答案,但我使用的是普通的旧 Forms 身份验证,所以这些答案不适用。服务端的身份验证使用 ASP.NET 成员身份(承载 HttpHandler 的同一台服务器)完成。

我应该(我希望)有一种方法可以将调用者上下文传递给服务。

恐怕我说得不够清楚。

我拥有的是 WCF 服务和 HttpHandler。用户通过具有 ASP 成员资格的 WCF 服务进行身份验证。

我想做的是,在HttpHandler中,能够做到

MyMethodCall()使用 HttpCaller 的上下文调用以传递其 ASP 票证/用户名等。

0 投票
1 回答
1204 浏览

sql-server - “模拟”用户未传播到 SQL Server 2000

我需要在 VB.NET 2008 WinForms 应用程序中“模拟”一个用户,以便该应用程序可以接受 PC 上任何用户的 Active Directory 登录,而不管谁实际登录到 Windows。我希望应用程序的 My.User 成为登录应用程序的人的 AD 帐户。我使用以下代码成功地做到了这一点:

但是,该应用程序使用带有连接到 SQL Server 2000 的数据访问层的 .DLL。在连接字符串中使用“Integrated Security=SSPI”的 SQL Server 似乎正在接收登录到 Windows 的帐户的登录信息而不是帐户返回 My.User.CurrentPrincipal.Identity,在单步执行代码时,在 WinForms 应用程序代码和 .DLL 的应用程序代码中。

WinForms 应用程序和 .DLL 代码都正确地将 My.User.CurrentPrincipal.Identity 识别为登录到应用程序的帐户,而不是 Windows。它只是没有传播到 SQL Server。这可以通过将 SUSER_SNAME() 写入 T-SQL 中表的列的存储过程来证明。

谁能看到我出了什么问题?

编辑:我已经WindowsIdentity.Impersonate(token)按照说明添加了该行,但是现在当我的 .DLL 尝试创建 SQL Server 连接时,它会引发此错误:

用户“NT AUTHORITY\ANONYMOUS LOGON”登录失败。

0 投票
4 回答
5942 浏览

c# - 使用 C# 访问不同机器上文件的正确方法

我想从同一网络上的不同 Windows 机器上读取文件,但不是同一域的一部分。(ASP.NET C# 应用程序)
尝试过 FileStream(无法进行身份验证),尝试过 FileWebRequest(使用 file:/// 时恢复为 FileStream)和模拟(support.microsoft.com/kb/306158#4),上面写着“模拟失败”在我的 Vista 上。
更新:我已经修复了“模拟失败”问题。但是仍然从另一台机器上得到“拒绝访问”,即使我在两台机器上都有“镜像”用户,所以问题仍然存在......
完成这项任务的正确方法是什么?

0 投票
2 回答
1308 浏览

c# - 为什么我无法在远程计算机上使用模拟打开文件?

我有一个用 C# 编写的 WCF 服务,托管在远程机器上,以本地管理员帐户运行。从我作为活动目录用户登录的机器上,我发送了一个命令,它只是告诉它在网络上打开一个文件。我可以访问该文件,但主机上的管理员帐户没有。我在需要模拟的方法上使用 [OperationBehavior(Impersonation=ImpersonationOption.Required)] 元标记,并且正确设置了凭据类型和安全模式。我可以通过比较 Windows 身份验证该帐户确实在尝试被模拟,但我仍然收到拒绝访问异常。我认为这与活动目录未对模拟用户进行身份验证有关。有什么我想念的吗?

0 投票
4 回答
93078 浏览

asp.net-mvc - 在 asp.net 中身份 impersonate="true" 时如何获取 Windows 用户名?

我正在创建公司中的每个人都应该有权访问的 Intranet asp.net mvc 应用程序。我需要运行模拟数据库访问等的网站,但我想知道每个用户是谁。

当我看Page.User.Identity.Name它是空白的。即使站点正在模拟运行,是否可以获得用户的 Windows 帐户名?

编辑: 这里有更多信息。我在 IIS 6 中运行了一个启用匿名访问的站点。该站点在有权访问数据库的系统帐户下运行(因为所有员工都无权访问数据库)。

我的 web.config 有<authentication mode="Windows" /><identity impersonate="true"/>

我的目标是用户不必登录——他们登录到我们的网络这一事实(以及该站点不在外部 IP 上的事实)就足以进行身份​​验证。我只想知道用户是谁,以便跟踪他们所做的更改等。

0 投票
1 回答
649 浏览

asp.net - 通过 VPN 进行 Asp.Net 模拟

我正在家里通过 VPN 进行开发。该项目是一个使用模拟的 Asp.Net 2.0(使用 3.5 SP1)应用程序。被模拟的帐户在工作域上,但是当我尝试运行该应用程序时,我收到以下错误:

'登录失败:未知用户名或密码错误。'

应用程序需要模拟才能访问工作中的 SQL 数据库。连接字符串完全指定了服务器 + 域。

有什么想法吗?或者我可以看的资源?

干杯托尼

0 投票
2 回答
568 浏览

.net - 用于执行模拟的 .NET 自定义属性?

我有一些方法需要作为某个服务帐户运行,所以我做正常的事情:

我想避免在每个方法中编写这段代码,所以我正在考虑创建一个自定义属性:

所以这是我的问题:

  1. 这可能吗?
  2. 你能告诉我一些可以避免代码重复的东西吗?

提前致谢。

0 投票
1 回答
8552 浏览

c# - 可以在 app.config 中模拟控制台应用程序吗?

我知道你可以在 web.config 中模拟,

控制台应用程序的 app.config 中是否可能完全相同?

0 投票
3 回答
574 浏览

asp.net - ASP.NET 模拟凭据

在我的应用程序的配置中有一个包含用户名和密码的模拟标签,我想知道这些凭据应该是什么才能使应用程序工作 - 这些是域中某些用户的凭据还是 IIS 服务器或什么?