发生以下问题。我们公司正在更改用户的所有密码。
他们让我编写程序,以便用户可以输入他或她的用户名和新密码,以便在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?
问题在于它仍然使用目标名称来查找凭证。
我希望你们能指出我正确的方向。
亲切的问候,
丹尼斯。