问题标签 [credential-manager]
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.
git - 用于通用远程存储库的 MacOS SourceTree 清除凭证助手
系统:
MacOS Catalina 10.15.5 SourceTree v4.0.1
问题:
我有一个从 Github 克隆的本地存储库。该存储库也存在于另一个远程(它实际上是 Azure 函数的 git 存储库,因此不是其他常见的嫌疑人之一,例如 Bitbucket),我只是试图设置该远程,以便我可以获取/推送/等到它.
我在以前的机器上做过这个,并且我正在重新设置以在新的 MacBook 上进行开发,所以这是我以前做过的事情,但我只是犯了一个简单的复制/粘贴错误,我可以' t 似乎撤消。
在 SourceTree 中,我去菜单添加一个远程,只输入远程 URL:
在我同意之后,我去了遥控器列表,右键单击列表中的新添加,并尝试获取。这提示我输入用户名,然后输入密码。我错误地复制/粘贴了两个值之一,但现在似乎卡住了,无法简单地删除它。
现在,当我尝试使用该特定遥控器获取(或做任何事情)时,我不断收到 403 Forbidden 响应。
我在这里搜索了大多数关于从 Keychain Access 中删除单个条目以及从Application Support中删除文件的其他 SO 帖子。
当我直接从钥匙串中删除密钥时,我打开了 SourceTree,所以这可能会产生影响,但是在删除它们并尝试再次从远程获取之后,我只是得到了与以前相同的 403 错误(而不是它要求凭据)。
清除 SourceTree 的 Application Support 文件夹后也发生了同样的情况。它重新询问了我的 Github 遥控器凭据,但它没有询问我关于新遥控器的任何内容。当我尝试获取时,我得到了和以前一样的 403 错误。
在 Embedded Git 和 System Git 之间切换似乎完全没有效果。
我已经绕过喇叭并试图解决这个问题(此时添加遥控器绝对荒谬的 3 小时)并且还尝试过:
- 丢弃并重新安装 Sourcetree
- 使用
security
命令行工具(Keychain 的 CLI)来查看是否可以在任何地方找到对挂在边缘的遥控器的隐藏引用 - 摆弄凭证助手的东西(主要是把东西扔在墙上,没有东西粘着)
- 重新启动机器
但是,我绝对没有尝试再次产生用户名/密码提示,并且我总是收到 403。
我最好的猜测是,这在某种程度上与-c credential.helper=sourcetree
Sourcetree 最初发出的 git 命令中的位有关。是否有一个单独的凭证存储来保存我的旧凭证?
一些测试似乎表明情况确实如此。我还有另一个托管相同存储库的远程设备,当我设置它时(用户名/密码没有混淆),然后删除保存到钥匙串的凭据,随后的提取不会询问我的凭据. 但是,在 *?!$ 他们在哪里?(以及如何清除它们??)
c++ - 无法在 Windows 凭据提供程序中使用非 ascii 字符(口音)
我正在使用 Microsoft 的“Sample All UI”示例创建一个 Windows 凭据提供程序。
作为讲法语的人,我需要使用这样的口音:“éàèê”。我所有的字符串都是widechar字符串(语法:L“Numéro de téléphone”),我使用的所有字符串函数都是widechar版本(wcsdup,wcscpy ...)
但是当我加载我的提供程序时,重音会生成为一组随机字符,如 © 或 Ã。它显然看起来像一个编码错误,但我找不到如何。
凭据提供程序是否支持特殊字符?我知道法语中的默认凭据提供程序会显示重音符号。
非常感谢。
c++ - 从 Windows 10 上本地用户启动的进程获取域用户凭据的句柄
背景:
- 计算机
mycomputer
正在运行 Windows 10 并已加入域mydomain.com
。 - 用户使用本地帐户登录
mycomputer\localuser
。mycomputer
- 用户也知道域帐户的密码
mydomain\domainuser
。 - 服务主体名称
myprotocol/domainuser
在 Active Directory 中注册并映射到域帐户mydomain\domainuser
。 - 不允许本地用户
mycomputer\localuser
以mydomain\domainuser
.
用户希望在本地帐户下启动服务器进程,然后使用域帐户来验证与 Kerberos 的传入连接。
我想编写该服务器的代码。
客户端代码:
客户端代码很简单,由一个调用组成,AcquireCredentialsHandle
然后调用InitializeSecurityContext
:
请注意代码片段中字符串的简化用法。必须处理的现实wchar_t
和const
正确性有些丑陋。
另请注意,如果适当的凭据存储在控制面板的凭据管理器中,则此代码在由本地用户启动时有效 - 即使用主机名domainuser
(原文如此。)
服务器代码:
我已经有一个代码可以在进程启动时工作mydomain\domainuser
:
但是,当服务器启动时mycomputer\localuser
,调用AcquireCredentialsHandle
失败并出现代码SEC_E_NO_CREDENTIALS
。
- 我尝试将该调用的第一个参数修改为
"myprotocol/domainuser"
,"domainuser"
或"mydomain\domainuser"
什至"domainuser@mydomain.com"
. mycomputer
我尝试使用主机名甚至在控制面板的凭据管理器中添加所需的凭据domainuser
。
mydomain\domainuser
在由 启动的进程中,我可以做些什么来获取凭据句柄mycomputer\localuser
?
编译代码片段:
git - 为什么 Git 凭证管理器需要单独实现每个服务?
背景:我们在办公室有一个本地 Gitea 服务器。我刚开始在启用Git Credential Manager Core的情况下使用它。令人惊讶的是(对我来说),每次我想要fetch
或push
(结束https
)时我都必须重新输入密码。
在阅读了一些 GCM Core 文档并找到了一个请求 Gitea 支持的拉取请求之后,在我看来这是因为根本没有实现 Gitea 支持。
https
现在,这就是我的问题出现的地方:无论连接到哪个服务,我都认为它的工作原理是一样的。如果凭据管理器所要做的只是安全地存储我的凭据以供以后使用,那么我尝试推送到 Gitea 或 Github 或其他服务有什么关系呢?
经过一些测试,我发现即使在
所以这甚至不是 GCM Core 的问题。为什么 Git 不缓存信息?
哦,如果这很重要,我正在使用适用于 Windows 的 Git(在 Windows 10 上)。
c# - AdysTech/CredentialManager 删除凭据问题
我是 stackoverflow 和 C# 的新手。我最近开始发布简单的 WinForm 应用程序,但我还有很长的路要走......
我编写了一个应用程序,它使用上述 nuget 包来删除本地存储的所有凭据。
我可以使用CredentialManager.RemoveCredentials()
方法来删除Type: Generic credentials。
但我无法删除通用证书和域密码凭据类型。它抛出一个通用异常,表示无法删除凭据。正如我所说我是 c# 的新手,我错过了什么吗?
提前致谢
安杰洛
java - 使用 Java 中的 windows 凭据管理器获取凭据以在 git 和其他服务中进行身份验证
目前我们将密码存储在纯文本文件中以登录 git 和其他服务。我们希望最终摆脱它并使用 Windows 凭据管理器。我们面临的唯一问题是我似乎没有找到解决方案来做到这一点。
我已经看过以下主题:
但对我来说,他们没有给我明确的答案,使用哪个 api。如果你能帮助我访问这个凭证管理器,那就太棒了。
sql-server - 使用凭据管理器通过 VPN 进行 SQL Server Windows 身份验证
我正在尝试使用基于 VPN 的 Windows 身份验证连接到远程 SQL Server。我对此进行了一些研究,并找到了两种方法来实现这一点 从这里
第一种方法效果很好
runas /netonly /user:domain\username ssms.exe
但根据那里的第二个答案,它也可以通过 Windows 凭据管理器来实现。但这似乎对我不起作用。
我已在凭据管理器中设置这些凭据
SSMS 中的 SQL Server 实例看起来像这样
但这不起作用。我在这里做错了什么?
git - 为什么我可以在不登录的情况下以不同的 user.name 和 user.email 推送到远程?
我首先在 Windows 的凭据管理器中删除了与 git 相关的所有凭据,将我的 user.name 和 user.email 更改为 repo 中的另一个用户,然后推送到远程。然后 Git 要求我通过浏览器登录。我单击了登录按钮,出现的浏览器选项卡告诉我身份验证立即成功,而没有要求我输入新用户的密码。当我在 Github 上检查提交历史时,它显示提交是由新用户(我将 user.name 更改为的用户)进行的,但该用户从未登录过我的计算机。这怎么可能?它与ssh有关吗?但我只使用 https 进行推拉。为什么新用户可以推送到我的仓库?我没有加他为我的合作者。