问题标签 [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.

0 投票
1 回答
129 浏览

c# - 加密时无法将密码保存到凭据管理器

我正在尝试将加密密码保存到 Windows 凭据管理器,以下代码可以正常读取,并且我可以生成正确加密的字符串,但是密码的加密形式永远不会保留。

为了完整起见,我需要加密密码,因为客户端应用程序需要此密码(Office 2010)。如果我通过 Office 2010 保存密码,我就可以正确读取它。

凭证结构

读:

写:

GetPtrToArray

我尝试过的事情是:

  1. 更改credentialBlob为字节 [],这将在 CredentialRead 期间因 PtrToStructure 中的编组错误而失败
  2. 更改credentialBlob为字符串,并在解密之前使用 Unicode.GetBytes() ,这会产生一个 2 个字符的字符串,假定是IntPtr

我认为问题在于共享 byte[] 的内存,即生成IntPtr用于CredWrite(). 之后尝试读取凭据时,blobSizeandblob都是 0(即指向 blob 的空 ptr)。

为了完整起见,这是从 .net 4.6.1 代码库运行的,我可以Marshal.StringToCoTaskMemUni(password)毫无问题地存储未加密的字符串(使用 )。

你能帮我吗?

0 投票
1 回答
3412 浏览

powershell - 从 SSIS 包调用时无法识别 Get-StoredCredential,但在 PowerShell 中运行良好

我有一个为 SQL Server 执行刷新过程的 SSIS 包。此过程需要在与运行包的凭据集不同的凭据集下执行某些查询。我创建了一组 PowerShell 脚本来处理必要的任务,RefreshMaster.ps1 调用 GrantPerms.ps1。

GrantPerms.ps1 使用 CredentialManager 模块 cmdlet Get-StoredCredential 来检索必要的凭据集,这是指定任务所必需的。该模块安装在 c:\Program Files\WindowsPowerShell\Modules 目录中,该目录包含在环境变量 PSModulePath 中。我使用以下命令为所有用户导入模块。

当我运行 Get-Module -ListAvailable 时,我看到模块列为 Binary,Ver 2.0。当我从 PowerShell 运行 RefreshMaster.ps1 时,一切正常,是的,我已经测试以确保正确的凭据被拾取并通过。但是,当我从 SSIS 调用 RefreshMaster.ps1 时,虽然是执行进程任务,但出现错误:

术语“Get-StoredCredential”未被识别为 cmdlet、函数、脚本、文件或可运行程序的名称。

示例代码:

我似乎无法弄清楚如何让它从 SSIS 正常运行。除了调用 Get-StoredCredentials 之外,所有其余代码似乎都运行良好。请帮忙!

0 投票
1 回答
1707 浏览

google-signin - Google Smart Lock 与凭据管理 API

我想为我的网络应用程序实现无摩擦登录过程。

经过一番搜索,我发现有两种解决方案:

我的问题是,这两个 API(如果有的话)有什么区别以及这两个 API 的可能用例是什么。

据我了解,两者都允许我们保存帐户相关信息。但智能锁的优势在于,保存的凭据也可以在相应的安卓应用程序中使用。

谢谢 !

注意:我打算支持从多个来源(google、facebook、linkedin 等)登录,而不仅仅是 google。

0 投票
0 回答
1314 浏览

windows - 如何在 Windows 上禁用 Git 凭据管理器 (Visual Studio 2017)

我有一个关于 Windows 7 上的 Visual Studio 2017 和 Git 的问题。在我们的环境中,并非每个用户都有单独的 Windows 帐户,因为这些机器是共享的。可悲的是,没有办法改变这一事实。我们使用 Bitbucket 来管理 Git 存储库。在这个系统中,每个用户都有自己的登录名。

因此,对于我们来说,不要为系统中的每个用户保存凭据非常重要。此外,我们希望在每次提交时轻松地在不同作者之间切换。这个问题的原因是凭证和提交的实际作者没有相互连接。但这是一个相对较小的问题。

更关键的是,Visual Studio 将每个用户的凭据作为“通用凭据”存储到 Windows 的内置凭据管理器中。这意味着即使在系统重新启动后,登录信息也会保存在 Windows 中,并且 Visual Studio 不再需要它们。这对我们来说是一个非常关键的问题。我们在不同的系统上尝试了以下方法来消除本地错误的可能性:

  • 使用组策略编辑器禁用在凭据管理器中存储密码:不起作用,因为这不会禁用存储通用密码。
  • 从所有配置文件中删除 Git 凭据管理器:在 Visual Studio 中不起作用。使用任何其他 Git 客户端时,这可以解决问题。
  • 从程序文件夹中删除 Git Credential Manager 可执行文件:没有任何效果
  • 在注册表中编辑注册表项“disabledomaincreds”:没有任何效果
  • 在 services.msg 中禁用凭据管理器服务:应用程序无法再启动,但 Visual Studio 仍将凭据保存在其中

我将不胜感激有关此主题的任何帮助。提前致谢!

0 投票
2 回答
1031 浏览

mobile-website - 为什么我应该通过 Chrome 的凭据管理 API 使用一键登录

我对谷歌今年早些时候宣布的 One Tap 登录有点困惑。我们的应用程序已经在 Chrome 中使用 Credential Management API,它本质上为用户提供了基于用户在上次访问时为我们的站点保存的凭据(保存在 chrome 中的密码)的登录选项。当我阅读 One tap sign in 的文档时,它承诺做同样的事情,但使用谷歌的客户端 api id。我们的应用程序有自己的 ID 提供者和我们自己的用户名和密码数据库,从文档看来,一键登录不支持自定义 ID 提供者。谁能更清楚地说明这一点,我为什么要用一个来对付另一个?

谢谢卡提克

0 投票
0 回答
521 浏览

credential-manager - 导航器凭据创建方法返回异常

尝试在 Firefox Nightly 下运行可用的 webautn 规范 ( https://www.w3.org/TR/webauthn/ )演示 ( https://github.com/molekilla/webauthn-demo-fork )。

每当执行到达 return 语句时,Promise 将保持挂起几秒钟并最终拒绝,记录[Exception... "Abort" nsresult: "0x80004004 (NS_ERROR_ABORT)" location: "<unknown>" data: no]UnknownError: The operation failed for an unknown transient reason。两个对象看起来都很好。关于它无法解决的原因的任何想法?

0 投票
0 回答
4055 浏览

c# - 如何以编程方式将 Windows 凭据添加到 Windows 上的凭据管理器?

我查看了这个问题的选择答案 Retrieve Credentials from Windows Credentials Store using C# ,它使用CredentialManagement NuGet 包在 Windows 上获取和设置凭据。

凭据管理包是 Windows 凭据管理 API 的包装器,它支持新旧样式的 UI

我能够以这种方式设置新凭据,但是它们被设置为Generic Credentials

据此 Windows 凭据管理器可以使用至少 4 种不同类型的凭据:

  • Windows 凭据
  • 基于证书的凭证
  • 通用凭证
  • 网络凭证

我需要设置的凭据旨在允许访问特定的本地 Web 服务器,当我手动将它们添加为Windows 凭据时,它们可以工作,当它们被应用程序或我自己添加为通用凭据时,它们不起作用.

在此处输入图像描述

我在这里找不到足够的信息,所以我需要知道的是如何通过使用此包或以任何其他可以以编程方式完成的方式将 Windows 凭据添加到 Windows 凭据管理器。

更新:我设法通过在这个问题上显示的方式解决我的问题:C# Using CredWrite to Access C$。但是,由于我也不想在这里回答同样的问题,所以我会留下这个问题,以防有人知道如何以不同的方式做,否则我会投票关闭它。

更新 2:虽然在发布上一个更新时,找到的解决方案正在运行,但现在无法运行。所以我还在寻找彻底解决这个问题的方法。我确信之前的链接仍然对其他人有用。

0 投票
2 回答
1480 浏览

security - 如何确定 Windows 凭据是否被禁用

我正在使用 Windows Credential Manager API 中的CredRead()andCredWrite()函数来存储和检索用户密码,如StackOverflow answer中所述。

但是,我读过可以通过设置组策略或简单地通过停止/禁用凭据管理器服务来禁用凭据管理器。在这种情况下,我想更新我的应用程序的 UI 以反映凭据存储当前不可用。

是否有可靠的方法来以可编程方式确定凭据管理器是否已被禁用?

0 投票
0 回答
1988 浏览

powershell - 如何通过 PowerShell 远程会话将凭据设置为凭据管理器

我正在尝试使用以下脚本将 TFS 连接的凭据写入 Windows 凭据管理器的通用部分:https ://gallery.technet.microsoft.com/scriptcenter/PowerShell-Credentials-d44c3cde

当我通过 RDP 连接到虚拟机并直接通过 PowerShell ISE 执行此“存储”脚本时,它工作正常。但是,一旦我通过 Power Shell 远程会话执行脚本的相同部分,它就会失败,相同的脚本会因“安全错误”而失败

知道如何授权“远程会话”将凭据写入 Windows 凭据存储吗?

谢谢!

0 投票
2 回答
1933 浏览

c# - LibGit2Sharp 和身份验证 UI

我正在使用 LibGit2Sharp 向应用程序添加许多 Git 操作。我添加了Microsoft.Alm.Authentication以帮助身份验证和凭据管理器访问。它非常适合检索已经从命令行输入的凭据。

但是,有什么方法可以连接到 Credential Manager 的登录 UI,提示输入 Github、BitBucket 和 VSTS 的用户名和密码。此 UI 从命令行自动弹出,但在使用 LibGit2Sharp 时不会触发。

我查看了 Github 上的 GitCredentialManager 项目,我可以看到提供 UI 的组件,但是在尝试弄清楚如何明确挂钩之前,我是否缺少某种方式,这是作为Microsoft.Alm.Authentication(或相关包)?或者任何人都可以指出如何最好地连接它的示例或指导?