public static unsafe int AcquireCredentialsHandle(SecurDll dll, string package, CredentialUse intent, ref SecureCredential authdata, out SafeFreeCredentials outCredential) { int num = -1; IntPtr certContextArray = authdata.certContextArray; try { long num2; IntPtr ptr2 = new IntPtr((void *)&certContextArray); if (certContextArray != IntPtr.Zero) { authdata.certContextArray = ptr2; } switch (dll) { case SecurDll.SECURITY: outCredential = new SafeFreeCredential_SECURITY(); RuntimeHelpers.PrepareConstrainedRegions(); try { goto Label_00C5; } finally { num = UnsafeNclNativeMethods.SafeNetHandles_SECURITY.AcquireCredentialsHandleW(null, package, (int)intent, null, ref authdata, null, null, ref outCredential._handle, out num2); } break; case SecurDll.SCHANNEL: break; default: goto Label_0093; } outCredential = new SafeFreeCredential_SCHANNEL(); RuntimeHelpers.PrepareConstrainedRegions(); try { goto Label_00C5; } finally { num = UnsafeNclNativeMethods.SafeNetHandles_SCHANNEL.AcquireCredentialsHandleA(null, package, (int)intent, null, ref authdata, null, null, ref outCredential._handle, out num2); } Label_0093 :; throw new ArgumentException(SR.GetString("net_invalid_enum", new object[] { "SecurDll" }), "Dll"); } finally { authdata.certContextArray = certContextArray; } Label_00C5: if (num != 0) { outCredential.SetHandleAsInvalid(); } return(num); }
public static unsafe int AcquireCredentialsHandle(SecurDll dll, string package, CredentialUse intent, ref SecureCredential authdata, out SafeFreeCredentials outCredential) { int num = -1; IntPtr certContextArray = authdata.certContextArray; try { long num2; IntPtr ptr2 = new IntPtr((void*) &certContextArray); if (certContextArray != IntPtr.Zero) { authdata.certContextArray = ptr2; } switch (dll) { case SecurDll.SECURITY: outCredential = new SafeFreeCredential_SECURITY(); RuntimeHelpers.PrepareConstrainedRegions(); try { goto Label_00C5; } finally { num = UnsafeNclNativeMethods.SafeNetHandles_SECURITY.AcquireCredentialsHandleW(null, package, (int) intent, null, ref authdata, null, null, ref outCredential._handle, out num2); } break; case SecurDll.SCHANNEL: break; default: goto Label_0093; } outCredential = new SafeFreeCredential_SCHANNEL(); RuntimeHelpers.PrepareConstrainedRegions(); try { goto Label_00C5; } finally { num = UnsafeNclNativeMethods.SafeNetHandles_SCHANNEL.AcquireCredentialsHandleA(null, package, (int) intent, null, ref authdata, null, null, ref outCredential._handle, out num2); } Label_0093:; throw new ArgumentException(SR.GetString("net_invalid_enum", new object[] { "SecurDll" }), "Dll"); } finally { authdata.certContextArray = certContextArray; } Label_00C5: if (num != 0) { outCredential.SetHandleAsInvalid(); } return num; }