问题标签 [sspi]

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 回答
1402 浏览

c# - AcquireCredentialsHandle win32 api 函数需要 C# 签名

我以某种方式为这个 api 调用提供了一个签名,但是这个调用不能以预期的方式工作。一些重要的数据结构没有正确填充,因此我没有得到预期的输出。我使用的签名是:

请忽略评论。

我用作参考的基于 c 的函数调用可以在这里找到。我想知道我做错了什么...

0 投票
1 回答
4146 浏览

c++ - 不同域上的 Windows 用户凭据验证

我正在尝试在未加入域的计算机上验证用户的 Windows 凭据。使用 SSPI API 似乎应该可以做到这一点,但我无法让它工作。

我包含了我一直在尝试的代码(为简洁起见,省略了资源清理)。这些是重要的信息:

域控制器: control.dundermifflin.com
域: DUNDERMIFFLIN
用户: jim_halpert
通行证: beesly

(我正在一个气隙网络上进行测试,因此与真正的 dundermifflin.com 没有任何 DNS 冲突。)

我得到的错误是 SEC_E_LOGON_DENIED。我很肯定用户名和密码是正确的,因为我可以使用该用户使用其他应用程序登录。谁能指出我正确的方向?

0 投票
3 回答
28010 浏览

authentication - 没有密码的 NTLM 代理?

我使用 HTTP 代理在公司 Windows 网络(我登录)上工作。当我使用 Internet Explorer 时,它会神奇地使用代理,而无需我输入密码。某些其他程序似乎也可以管理此问题,例如 JavaWebStart 具有“使用浏览器设置”选项。

但是,当我使用 curl 或 wget 之类的脚本/程序从 http 获取内容或在我的 Java 代码中执行此操作时,我似乎需要将密码存储在某个地方,这显然不是最好的安全性。

如何以编程方式获得 Internet Explorer 的无密码访问?

我认为这是一个堆栈溢出问题,因为我是一名程序员,我需要我的程序/脚本在不输入密码的情况下工作,尽管我可以看到其他人可能认为它属于服务器故障/超级用户。

我知道 curl 中的 --proxy-ntlm 之类的设置,但这仍然需要 ntlm 用户名和密码。

0 投票
3 回答
6266 浏览

c++ - 简单的客户端/服务器,TCP/IP 加密消息流,SSL (C++)

基本上我的问题与此完全相同:

简单的客户端/服务器、TCP/IP 加密消息流、SSL

不同之处在于我需要它用于纯 C++,而不是 .NET。我不能使用 3rd 方库,所以除非它是 Windows 系统组件(如上),否则我需要一些有源代码的东西,这样我才能得到通用的想法并自己构建它。

谢谢 :)

引用另一个问题以供参考:

“编写一个小的 TCP/IP 客户端服务器应用程序。基本上它会创建一个服务器,然后您可以创建几个不同的客户端并设置一些聊天会话。我想知道有什么方法可以合并,使用标准 .网络库某种形式的加密?

m_mainSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

有没有使用 rsa 指定 tcp 的方法?

或者您(我就是)是否必须编写一些自定义库来进行密钥交换,然后加密随后的聊天消息?我以前为 uni 做过,但那是在 java 中,但我知道转换它们并不难。只是试图不必重新发明轮子......

或者使用 ssl 怎么样?

谢谢,罗恩。”

0 投票
1 回答
6258 浏览

winapi - AcquireCredentialsHandle 返回 SEC_E_NO_CREDENTIALS

我创建了一个自签名证书(使用 OpenSSL 创建)并使用 Windows Vista Ultimate 上的证书MMC 管理单元 (CertMgr.msc)将其安装到证书存储中。

我已设法使用CertOpenSystemStore打开证书存储。然后我可以使用CertFindCertificateInStore找到证书

但是我不确定这个错误的真正含义,因为我无法在 MSDN 文档中找到答案。

  • 这是证书问题吗?
  • 还是操作系统问题(从某种意义上说,它应该是 Windows Server 操作系统才能工作)?

我在 Delphi 2010 中使用 Win32 API,但 C 示例很好。

0 投票
2 回答
6336 浏览

winapi - EncryptMessage 返回 SEC_E_INVALID_TOKEN

当使用具有有效上下文的 win32 API 中的 EncryptMessage (SChannel) 时,我以正确的顺序提供四个缓冲区,我得到 SEC_E_INVALID_TOKEN 响应,根据文档,该响应是没有找到 SECBUFFER_DATA 类型的缓冲区。我知道应该从连续内存中分配 pvBuffers 集以提高速度,但为简单起见,我已经清楚地表明了什么是什么。谁能看到问题可能是什么?

谢谢,布鲁斯

代码如下;

我使用 STRACE 注入可执行文件,这一行看起来很有趣;

这看起来好像操作系统正在获取正确的信息。

我搜索了一下,发现 80090308 通常意味着证书有问题,因为服务器的全名应该在主题中,CN=www.foobar.com 但这也没有解决问题,证书和CA 是使用 OpenSSL 生成的。

0 投票
20 回答
201379 浏览

sql - 无法创建 SSPI 上下文

我正在开发一个 .NET 应用程序,我正在尝试构建数据库脚本。在构建项目时,我收到错误“无法创建 SSPI 上下文。”。此错误显示在输出窗口(VS2008 屏幕内)中,并且构建过程失败。请帮助解决这个问题。SQL Server 配置为在 Windows 身份验证上工作并作为网络服务运行(这两件事对于我的项目来说是必须的)。

请帮助解决这个问题。这个错误似乎并不一致。过去通过重启机器,更改系统时间以匹配域时间以及网络中的一些建议来修复它。请帮助解决这个问题。

0 投票
4 回答
12000 浏览

c# - SslStream.AuthenticateAsClient 上的异常(消息格式错误)

我遇到了奇怪的问题。我正在尝试通过 TCP/SSL 连接到 Apple 服务器。我正在使用 Apple 提供的客户端证书进行推送通知。我在本地受信任的根证书和本地个人证书文件夹中的服务器(Win2k3)上安装了证书。

现在我有一个处理该连接的类库,当我从从服务器运行的控制台应用程序调用这个类库时,它工作得非常好,但是当我从 asp.net 页面或 asmx Web 服务调用该类库时,我得到以下异常。

对 SSPI 的调用失败,请参阅内部异常。收到的消息出乎意料或格式错误。

这是我的代码:

ssl.AuthenticateAsClient是抛出错误的地方。

这让我发疯了。如果控制台应用程序可以正常连接,则 asp.net 网络层安全性肯定存在一些问题,无法通过身份验证...不确定,可能需要在 web.config 中添加一些东西或某种安全策略。还要指出的是,我可以在本地开发机器上与控制台和网站很好地连接。

有人有什么想法吗?

0 投票
1 回答
985 浏览

wcf - WCF:为什么传入远程端点会失败?

我在将 wcf 客户端应用程序连接到在单独机器上运行的主机时遇到的问题记录在先前提出的问题中:

WCF:为什么传入远程端点会失败?

但是,此处提供的解决方案说您需要使用带有空字符串的 SpnEndpointIdentity。由于我的代码与我引用的示例中的情况不同,我需要知道如何处理我创建的 SpnEndpointIdentity 对象。

我有一个 ChannelFactory,我在其上调用 Create channel,传入一个 EndpointAddress:

(注意:ChannelFactory 是 IChannelFactory 类型,其中 T 是服务合同接口) 那么我该如何处理 spnEndpointIdentity?我无法将它传递给 CreateChannel。

或者我可以在创建通道工厂时以某种方式使用它:

同样,我不能将它传递给构造函数,那我该怎么办呢?

谢谢。

0 投票
4 回答
17760 浏览

c++ - 使用 MS SSPI 实现安全 SLL/TLS 客户端的可编译 C++ 代码

如此处所述 http://www.ddj.com/cpp/184401688

我没有时间从头开始写这个。

询问但未回答 https://stackoverflow.com/questions/434961/implementing-ssl

问题是:

我正在寻找一些实现 MS SSPI 的可编译工作源代码(如上面的线程中提到的),程序不是 OOP 首选。

我在这里查看了代码项目示例:

http://www.codeproject.com/KB/IP/sslclasses.aspx

但这是 C# OOP。将其转换为 C++ 代码并非易事。

OpenSSL

SChannel 调用遵循 GSS API 标准。当然,还有一些替代方案——例如 OpenSSL。这个包是协议的完整和彻底的实现,对于非常熟悉 UNIX 的人来说无疑是最好的选择。该软件包最初面向 UNIX 社区,并且依赖于 Perl 运行时进行编译,因此对于从未使用过 UNIX 类型系统的 Windows 开发人员来说,需要一些学习曲线。

除此之外,OpenSLL 做了一些非常不标准的事情

Nikolai,贡献了很多可编译的源代码 (www.coastrd.com) 我希望能找到愿意做同样事情的人。