我知道回答这个问题有点晚了,但仍然没有答案,所以想提供一个解决方案。
CredentialManager.RemoveCredentials()
如果您将凭据存储为 LocalMachine(cred1.Persistance = Persistance.LocalMachine;或者您在存储凭据时根本不提供 Persistance 属性)将不起作用,因为如果 Persistance 设置为 Enterprise,CredentialManager.RemoveCredentials() 将删除凭据。
因此,问题不在于您的删除逻辑,而在于创建逻辑。
使用以下代码创建凭据:
var cred1 = (new NetworkCredential("UserName", "PassWord")).ToICredential();
cred1.TargetName = "TargetName";
cred1.Attributes = new Dictionary<string, Object>();
cred1.Persistance = Persistance.Enterprise;
cred1.SaveCredential();
和删除只是使用下面:
CredentialManager.RemoveCredentials("TargetName");
如果它不起作用,请也发布您的创建逻辑,以便我验证。