如何以编程方式在Windows上将Credentials添加到Credentials Manager?

时间:2018-02-28 15:34:24

标签: c# windows-7 windows-10 credentials credential-manager

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

  

Credential Management包是Windows Credential Management API的包装器,它支持新旧UI样式

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

public static bool SetCredentials(
     string target, string username, string password, PersistanceType persistenceType)
    {
        return new Credential
        {
            Target = target,
            Username = username,
            Password = password,
            PersistanceType = persistenceType
        }.Save();
    }

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

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

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

enter image description here

我找不到有关此here的足够信息,因此我需要知道的是如何使用此软件包将Windows凭据添加到Windows凭据管理器,或者以其他任何可以通过编程方式完成的方式

更新:我设法按照这个问题显示的方式解决了我的问题:C# Using CredWrite to Access C$。但是,既然我也不想在这里回答同样的问题,我会保留问题,以防有人知道如何以不同的方式做到这一点,否则我会投票决定关闭它。

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

0 个答案:

没有答案