获取指定的Windows凭据用户名(Windows Vault)

时间:2015-03-26 11:01:14

标签: windows credentials

发生以下问题。我们公司正在更改用户的所有密码。

他们让我编写程序,以便用户可以输入他或她的用户名和新密码,以便在Windows凭据管理器中替换它。 (Windows Vault)。

我要做的是使用指定的用户名获取凭据管理器中的所有存储凭据。当我找到用户名时,我将编辑密码。

我不知道目标名称,因此我找不到具有目标名称的凭据。

我使用https://www.nuget.org/packages/CredentialManagement/制作了以下脚本:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using CredentialManagement;
using System.Diagnostics;
using System.Security;
using Microsoft.Win32.SafeHandles;

namespace RU_PWReplacer
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            GetCredentials();
        }

        public void GetCredentials()
        {
            List<Credential> Credentials = new List<Credential>();
            List<string> TargetPath = new List<string>();

            TargetPath.Add("test1.nl");
            TargetPath.Add("test2.nl");
            TargetPath.Add("test3.nl");

            for (int i = 0; i < TargetPath.Count; i++)
            {
                Credential Try_ToFind_Credential = new Credential { Target = TargetPath[i], Type = CredentialType.DomainPassword };
                Credentials.Add(Try_ToFind_Credential);
            }
            foreach (Credential c in Credentials)
            {
                if (!c.Exists())
                {
                    Console.Write("Not Found\n");
                }
                else
                {
                    Console.Write("Found\n");
                }
            }
        }
    }
}

问题在于,这种方式我使用目标名称进行搜索,这是不可能的,因为可能有很多目标名称。因此,搜索用户名更有效。

如果找到了这篇文章:How do I store and retrieve credentials from the Windows Vault credential manager?

问题在于它仍然使用目标名称来查找凭证。

我希望你们能指出我正确的方向。

亲切的问候,

丹尼斯。

0 个答案:

没有答案