gpt4 book ai didi

c# - 模拟和 NetworkCredential

转载 作者:太空狗 更新时间:2023-10-29 17:55:42 24 4
gpt4 key购买 nike

我需要将包含当前模拟用户凭据的 NetworkCredential 对象从 asp.net 应用程序传递到 Web 服务。
我的代码如下所示:

WindowsIdentity windowsIdentity = HttpContext.Current.User.Identity as WindowsIdentity;
WindowsImpersonationContext context = windowsIdentity.Impersonate();
try {
var client = GetClient();
client.ClientCredentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
Log("WindowsIdentity = {0}", windowsIdentity.Name);
Log("DefaultNetworkCredentials = {0}", CredentialCache.DefaultNetworkCredentials.UserName);
client.DoSomething();
} finally {
context.Undo();
}

我知道 CredentialCache.DefaultNetworkCredentials 应该提供当前模拟用户的凭据,但事实并非如此。
我得到的日志消息是

WindowsIdentity = TESTDOMAIN\TESTUSER
DefaultNetworkCredentials =

我做错了什么吗?如果是这样,您如何为当前模拟的用户获取 NetworkCredential 对象?

最佳答案

MSDN 中的一篇有点冗长的文章解释了在 ASP 中获取网络凭据的选项:

How To: Use Impersonation and Delegation in ASP.NET 2.0

关于该主题的另一篇博客文章(尽管我没有检查该解决方案是否真的有效:

.NET (C#) Impersonation with Network Credentials

关于c# - 模拟和 NetworkCredential,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2063408/

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