Esempio n. 1
0
 internal static extern int CredWrite(ref CREDENTIAL Credential, int Flags);
Esempio n. 2
0
 internal Credential(CREDENTIAL source) {
     RefreshFromCredential(source);
 }
Esempio n. 3
0
 private unsafe void RefreshFromCredential(CREDENTIAL source) {
     m_Name = source.TargetName;
     m_Comment = source.Comment;
     m_Persist = (PersistType)source.Persist;
     m_Contents = new byte[source.CredentialBlobSize];
     if (source.CredentialBlobSize > 0) {
         for (int i = 0; i < source.CredentialBlobSize; i++) {
             m_Contents[i] = source.CredentialBlob[i];
         }
     }
     m_Exists = true;
 }
Esempio n. 4
0
 private unsafe void InternalWrite(byte[] contents) {
     fixed (byte* blobPointer = contents) {
         CREDENTIAL cred = new CREDENTIAL();
         cred.Flags = 0;
         cred.Type = NativeMethods.CRED_TYPE_GENERIC;
         cred.TargetName = m_Name;
         cred.Comment = m_Comment;
         cred.LastWritten = 0;
         cred.CredentialBlobSize = contents.Length;
         cred.CredentialBlob = blobPointer;
         cred.Persist = (int)m_Persist;
         cred.AttributeCount = 0;
         cred.Attributes = IntPtr.Zero;
         cred.TargetAlias = null;
         cred.UserName = null;
         if (NativeMethods.CredWrite(ref cred, 0) == 0) {
             int err = Marshal.GetLastWin32Error();
             throw new CredentialException(ResourceController.GetString("Error_CredentialWrite"), err);
         }
     }
     m_Contents = (byte[])contents.Clone();
     m_Exists = true;
 }
Esempio n. 5
0
 internal static extern int CredWrite(ref CREDENTIAL Credential, int Flags);