CredDelete() private method

private CredDelete ( string targetName, CredentialType type, uint flags ) : bool
targetName string
type CredentialType
flags uint
return bool
Esempio n. 1
0
        protected void PurgeCredentials(string @namespace)
        {
            string filter = @namespace + "*";
            int    count;
            IntPtr credentialArrayPtr;

            if (NativeMethods.CredEnumerate(filter, 0, out count, out credentialArrayPtr))
            {
                for (int i = 0; i < count; i += 1)
                {
                    int    offset        = i * Marshal.SizeOf(typeof(IntPtr));
                    IntPtr credentialPtr = Marshal.ReadIntPtr(credentialArrayPtr, offset);

                    if (credentialPtr != IntPtr.Zero)
                    {
                        NativeMethods.Credential credential = Marshal.PtrToStructure <NativeMethods.Credential>(credentialPtr);

                        if (!NativeMethods.CredDelete(credential.TargetName, credential.Type, 0))
                        {
                            int error = Marshal.GetLastWin32Error();
                            Debug.Fail("Failed with error code " + error.ToString("X"));
                        }
                    }
                }

                NativeMethods.CredFree(credentialArrayPtr);
            }
            else
            {
                int error = Marshal.GetLastWin32Error();
                Debug.Fail("Failed with error code " + error.ToString("X"));
            }
        }
Esempio n. 2
0
        protected void Delete(string targetName)
        {
            try
            {
                if (!NativeMethods.CredDelete(targetName, NativeMethods.CredentialType.Generic, 0))
                {
                    int error = Marshal.GetLastWin32Error();
                    switch (error)
                    {
                    case NativeMethods.Win32Error.NotFound:
                    case NativeMethods.Win32Error.NoSuchLogonSession:
                        Git.Trace.WriteLine($"credentials not found for '{targetName}'.");
                        break;

                    default:
                        throw new Win32Exception(error, "Failed to delete credentials for " + targetName);
                    }
                }
                else
                {
                    Git.Trace.WriteLine($"credentials for '{targetName}' deleted from store.");
                }
            }
            catch (Exception exception)
            {
                Debug.WriteLine(exception);
            }
        }
        protected void Delete(string targetName)
        {
            Trace.WriteLine("BaseSecureStore::Delete");

            try
            {
                if (NativeMethods.CredDelete(targetName, NativeMethods.CredentialType.Generic, 0))
                {
                    return;
                }


                int error = Marshal.GetLastWin32Error();
                switch (error)
                {
                case NativeMethods.Win32Error.NotFound:
                case NativeMethods.Win32Error.NoSuchLogonSession:
                    Trace.WriteLine("   credentials not found for " + targetName);
                    break;

                default:
                    throw new Win32Exception(error, "Failed to delete credentials for " + targetName);
                }
            }
            catch (Exception ex)
            {
                if (ErrorHandler.IsCriticalException(ex))
                {
                    throw;
                }
                Debug.WriteLine(ex);
            }
        }