public static SafeCredHandle SafeAcquireCredentialsHandle(string package, CredentialUse credentialUse) { CredHandle credHandle; long num; Secur32Dll.AcquireCredentialsHandleA(null, package, (int)credentialUse, null, null, null, null, out credHandle, out num); return(new SafeCredHandle(credHandle)); }
public static unsafe void AcquireCredentialsHandle( CredentialUse credentialUse, SchannelCred authData, out SafeCredHandle credential, out long expiry) { CredHandle handle; GCHandle paCredHandle = new GCHandle(); IntPtr[] paCred = null; if (authData.cCreds > 0) { paCred = new IntPtr[] { authData.paCreds1 }; paCredHandle = GCHandle.Alloc(paCred, GCHandleType.Pinned); authData.paCreds1 = paCredHandle.AddrOfPinnedObject(); } try { int error = Secur32Dll.AcquireCredentialsHandleA( null, Secur32Dll.UNISP_NAME, (int)credentialUse, null, &authData, null, null, out handle, out expiry); if (error != 0) { throw new SspiException(error, @"AcquireCredentialsHandleA"); } credential = new SafeCredHandle(handle); } finally { if (paCredHandle.IsAllocated) { paCredHandle.Free(); } if (paCred != null) { authData.paCreds1 = paCred[0]; } } }
public static unsafe SafeCredHandle SafeAcquireCredentialsHandle(string package, CredentialUse credentialUse) { long expiry; CredHandle handle; try { int error = Secur32Dll.AcquireCredentialsHandleA( null, package, (int)credentialUse, null, null, null, null, out handle, out expiry); return(new SafeCredHandle(handle)); } finally { } }
public unsafe static void AcquireCredentialsHandle(CredentialUse credentialUse, SchannelCred authData, out SafeCredHandle credential, out long expiry) { GCHandle gCHandle = default(GCHandle); IntPtr[] array = null; if (authData.cCreds > 0) { array = new IntPtr[] { authData.paCreds1 }; gCHandle = GCHandle.Alloc(array, GCHandleType.Pinned); authData.paCreds1 = gCHandle.AddrOfPinnedObject(); } try { CredHandle credHandle; int num = Secur32Dll.AcquireCredentialsHandleA(null, "Microsoft Unified Security Protocol Provider", (int)credentialUse, null, (void *)(&authData), null, null, out credHandle, out expiry); if (num != 0) { throw new SspiException(num, "AcquireCredentialsHandleA"); } credential = new SafeCredHandle(credHandle); } finally { if (gCHandle.IsAllocated) { gCHandle.Free(); } if (array != null) { authData.paCreds1 = array[0]; } } }