public void AddPasswordCredential(string targetName, string userName, string password, string comment)
 {
     using (var credential = new Credential
     {
         TargetName = targetName,
         UserName = userName,
         CredentialBlob = password,
         Comment = comment
     })
     {
         credential.Save();
     }
 }
 public void DeleteCredential(Credential credential)
 {
     if (!UnsafeAdvapi32.CredDeleteW(credential.TargetName, credential.Type, 0))
     {
         var error = (CredentialErrors)Marshal.GetLastWin32Error();
         switch (error)
         {
             case CredentialErrors.Success:
             case CredentialErrors.NotFound:
                 break;
             case CredentialErrors.NoSuchLogonSession:
             case CredentialErrors.InvalidFlags:
                 throw new Win32Exception((int)error);
             default:
                 throw new InvalidOperationException("Unexpected error while removing credential.");
         }
     }
 }