如何解决AdysTech / CredentialManager删除凭据问题
我是stackoverflow和C#的新手。我最近开始发布简单的WinForm应用程序,但还有很长的路要走...
我编写了一个使用上述nuget包删除本地存储的所有凭据的应用程序。
我可以使用CredentialManager.RemoveCredentials()
方法删除类型:通用凭据。
但是我无法删除通用证书和域密码凭据类型。它抛出一个通用异常,表示无法删除凭据。正如我所说的,我刚接触C#,我错过了什么吗?
预先感谢
天使
解决方法
我知道现在回答这个问题有点晚了,但仍然没有答案,所以想提供一个解决方案。
CredentialManager.RemoveCredentials()
如果您将凭据存储为 LocalMachine(cred1.Persistance = Persistance.LocalMachine;或者您在存储凭据时根本没有提供 Persistance 属性)将不起作用,因为如果 Persistance 设置为 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");
如果它不起作用,请也发布您的创建逻辑,以便我验证。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。