问题标签 [defaultnetworkcredentials]

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 投票
3 回答
1765 浏览

c# - DefaultNetworkCredentials 具有空值。需要提示用户...如何?

在某些情况下,我使用 SharePoint Web 服务的桌面应用程序最终会出现具有空值的 DefaultNetworkCredentials,因此调用失败。然后我需要获取用户凭据,但我还没有找到一种直接的方法。

我正在考虑实施http://www.pinvoke.net/default.aspx/credui/CredUIPromptForCredentialsW.html中概述的解决方案

...但是,这仍然需要我处理密码,我真的不想这样做。我看过了,但还没有找到更直接的方法来提示用户并直接返回 NetworkCredential,而无需存储密码?

谢谢,

编辑:看起来我不会确切地找到我正在寻找的东西......当这种情况发生时,我必须自己提示用户。

但是,如果我正确解释了其中一些答案,则 DefaultNetworkCredentials 首先可能是这样的错误情况。是这样吗?有没有办法强制填充 DefaultNetworkCredentials,或者它真的是一个简单的缓存,它只是记住用于目标 URI 的最后一个域/用户 ID/密码(那天?那个应用程序/会话?)。

0 投票
3 回答
48414 浏览

web-services - Using DefaultCredentials and DefaultNetworkCredentials

We're having a hard time figuring how these credentials objects work. In fact, they may not work how we expected them to work. Here's an explanation of the current issue.

We got 2 servers that needs to talk with each other through webservices. The first one (let's call it Server01) has a Windows Service running as the NetworkService account. The other one Server02 has ReportingServices running with IIS 6.0. The Windows Service on Server01 is trying to use the Server02 ReportingServices WebService to generate reports and send them by email.

So, here's what we tried so far.

Setting the credentials at runtime (This works perfectly fine):

Now, if we could use a generic user all would be fine, however... we are not allowed to. So, we are trying to use the DefaultCredetials or DefaultNetworkCredentials and pass it to the RS Webservice:

Or:

Either way won't work. We're always getting 401 Unauthrorized from IIS. Now, what we know is that if we want to give access to a resource logged as NetworkService, we need to grant it to DOMAIN\MachineName$ (http://msdn.microsoft.com/en-us/library/ms998320.aspx):

Granting Access to a Remote SQL Server

If you are accessing a database on another server in the same domain (or in a trusted domain), the Network Service account's network credentials are used to authenticate to the database. The Network Service account's credentials are of the form DomainName\AspNetServer$, where DomainName is the domain of the ASP.NET server and AspNetServer is your Web server name.

For example, if your ASP.NET application runs on a server named SVR1 in the domain CONTOSO, the SQL Server sees a database access request from CONTOSO\SVR1$.

We assumed that granting access the same way with IIS would work. However, it does not. Or at least, something is not set properly for it to authenticate correctly.

So, here are some questions:

  1. We've read about "Impersonating Users" somewhere, do we need to set this somewhere in the Windows Service ?

  2. Is it possible to grant access to the NetworkService built-in account to a remote IIS server ?

Thanks for reading!

0 投票
6 回答
48857 浏览

.net - 您如何获取当前登录用户的凭据(NetworkCredential)?

我正在编写一些代码来利用第 3 方组件,当我开始使用它时,我需要提供一个实现 ICredentials 的对象。

如果我写以下...

...并通过“凭据”,没关系。但我想传递当前用户的凭据(它是 Windows 服务,因此以指定用户身份运行)

我已经尝试了以下两种方法,但似乎都不起作用(或返回任何东西)

任何人都可以建议如何获取一个适当的对象,该对象代表服务正在运行的用户名的凭据?

谢谢

0 投票
2 回答
7181 浏览

.net - 使用“默认代理”时,用户名/密码来自哪里?

“WebClient”类(也包括 ClickOnce)可以使用默认代理设置(例如放入 application.config),但是:

  1. 用户名/密码从何而来?(我在 XML 配置中看不到设置 - 见下文)。
  2. 应用程序是否可以配置为手动提示用户输入用户名/密码

http://msdn.microsoft.com/en-us/library/kd3cf2ex.aspx

PS。 我刚刚使用以下设置进行了测试,并确认用户名/密码不是来自成功登录的 IE 会话。

因此,悬而未决的问题是用户名/密码来自哪里?还是必须在自定义应用程序中以编程方式提供它,在这种情况下 ClickOnce 会发生什么?(似乎没有启动任何对话框以允许用户提供用户名/密码)

0 投票
2 回答
14411 浏览

.net - DefaultNetworkCredentials 或 DefaultCredentials

当我需要向代理(本地或网络中)提供凭据时,我应该使用哪一个?

这两者之间的确切区别是什么?

0 投票
2 回答
5136 浏览

c# - ASMX:在运行时设置用户/密码

当我想连接到我的网络服务时如果我这样写:

这是工作。但我需要一个登录表单。所以用户可以输入他们的用户/通行证

所以我正在创建一个 NetworkCredential 实例并根据我从该登录表单中获得的内容设置它的用户/密码成员,然后我正在写这个而不是使用上面的行:

但是以这种方式,当我调用该 webService 的方法时,它会给我错误。

设置凭据的方法是否错误?

0 投票
2 回答
1007 浏览

c# - WebRequest 是从另一个 IP 而不是我的系统 IP 生成的?

我有以下代码绕过本地机器的代理服务器,然后发送 WebRequest。

编辑 1

现在,当我尝试执行时,出现 403 错误。所以我检查了服务器日志,发现 HTTP/1.0 请求来自一个 IP 172.24.1.87,而我的 IP 是172.24.17.220.

有没有办法避免这种情况?我认为这是 403 错误的根本原因。

请帮忙。谢谢,

苏亨

0 投票
2 回答
4883 浏览

c# - 如何在没有用户密码的情况下获取 Alfresco 登录票,但使用用户主体名称 (UPN) 模拟用户

我正在编写一个 DLL,该 DLL 具有在不使用用户密码的情况下仅使用用户主体名称 (UPN) 获取 Alfresco 登录票的功能。我正在调用 alfresco REST API 服务/wcservice。我在露天使用 NTLM。

我正在使用WindowsIdentity构造函数来模拟用户,如此处所述http://msdn.microsoft.com/en-us/library/ms998351.aspx#paght000023_impersonatingbyusingwindowsidentity。我检查并正确模拟了用户(我检查了WindowsIdentity.GetCurrent().Name属性)。

模拟用户后,我尝试HttpWebRequest使用CredentialsCache.DefaultNetworkCredentials. 我得到错误:

当我new NetworkCredential("username", "P@ssw0rd")用来设置请求凭据时,我得到了 Alfresco 登录票 ( HttpStatusCode.OK, 200)。

有没有什么方法可以在没有用户密码的情况下获得 Alfresco 登录票?

这是我正在使用的代码:

以下是来自 Alfresco stdout.log 的记录(如果有任何帮助):

0 投票
0 回答
5808 浏览

wcf - 在当前用户凭据下调用 Web 服务

我有一个配置了 Windows 身份验证的自定义 WCF Web 服务和一个需要调用前者的 WPF 客户端应用程序。该服务检查用户名并从数据库中提取一些特定数据。所以我必须使用运行应用程序的用户的凭据来调用服务。

问题是我的服务托管在另一个具有 Windows 身份验证的站点下,用户可以在那里使用另一个帐户进行身份验证。Windows(或 IE?)缓存上次使用的帐户,然后我的客户端应用程序也使用它!

例子:

我在“MYDOMAIN\AdminUser”下进入网站

我运行以下代码(来自客户端应用程序,它不是网络代码)

服务被“MYDOMAIN\AdminUser”调用..

我知道我可以使用名称和密码创建 NetworkCredential 但我必须将它存储在某个地方,对其进行加密等等..

为了澄清这个问题:在一个帐户下运行的客户端进程自己调用另一个帐户下的服务,只是因为 Windows 在后台为调用提供了另一个凭据。

0 投票
1 回答
5015 浏览

c# - NetworkCredential、CredentialCache、ICredentials 全部返回 Nothing

我有一个 Windows 窗体应用程序,当我尝试从 Google 服务器返回 JSON 字符串时,它不断返回 407 代理服务器错误。我被引导相信我需要做的就是通过将 WebRequest Credentials 设置为“DefaultCredentials”或“DefaultNetworkCredentials”来正确设置安全上下文。但是,我使用的所有方法(参见主题标题)总是返回“”。

烦人的是,该应用程序在我的机器上运行、发布并通过 VS 2008 时运行良好,但是当其他用户尝试时,它会产生以下错误:

在 System.Net.HttpWebRequest.GetResponse()

任何想法任何一个,在我秃头之前!

提前致谢

C

编辑:按要求提供一些代码。我已经尝试了以下几种变体,但似乎都不起作用。

或字符串 url = "http://www.blah.com"; uri uri = 新的 uri(url); ICredentials 凭据 = CredentialCache.DefaultCredentials;NetworkCredential credential = credentials.GetCredential(uri, "Basic");

或者

进入

或者

我也试过了