gpt4 book ai didi

C# ASP.NET;获取登录用户的 NetworkCredential 对象?

转载 作者:太空宇宙 更新时间:2023-11-03 20:12:21 25 4
gpt4 key购买 nike

我必须实现以下场景:ASP .NET 网络应用程序1.用户登录2. 使用登录用户的凭据,我必须从 Sharepoint 站点下载一些文件;

环境:- 现在 web.config 设置为模拟和 Windows 身份验证。上,但也必须使用基本身份验证- 我使用 System.Net.WebClient 通过 Sharepoint 站点的 Web 服务下载 Sharepoint 文件,而这个 WebClient 需要一个 Credential 对象,这就是我需要 NetworkCredential 对象的原因。

P.S:CredentialCache.DefaultCredentials 和 CredentialCache.DefaultNetworkCredentials 返回一个用户名和密码为空的凭证,所以我不能用它来访问 Sharpeoint 站点。也不适合获取 System.Security.Principal.WindowsIdentity.GetCurrent() 或System.Web.HttpContext.Current.User.Identity,因为我只能通过这种方式获取用户名,并且为了实例化 NetworkCredential,我需要一个 uname 和 pw。

最佳答案

仅供引用,我想我已经设法解决了这个问题;我正在使用模拟上下文,我使用 CredentialCache.DefaultNetworkCredentials,并将 WebClientUseDefaultCredentials 设置为 true,这似乎到目前为止工作。所以:

WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();
using (identity.Impersonate())
{
webClient.Credentials = CredentialCache.DefaultNetworkCredentials;
webClient.UseDefaultCredentials = true;
}

这对我有用。

关于C# ASP.NET;获取登录用户的 NetworkCredential 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19212133/

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