private void QueryBufferSizes(out SecurityPackageContextSizes sizes)
        {
            var contextAddRefSuccess = false;

            RuntimeHelpers.PrepareConstrainedRegions();
            try
            {
                DangerousAddRef(ref contextAddRefSuccess);
            }
            catch (Exception ex)
            {
                if (contextAddRefSuccess)
                {
                    DangerousRelease();
                    contextAddRefSuccess = false;
                }

                if (!(ex is ObjectDisposedException))
                {
                    throw;
                }
            }
            finally
            {
                var result = NativeMethods.QueryContextAttributes(ref _handle, QueryContextAttributes.Sizes, out sizes);

                DangerousRelease();

                if (result != NativeMethods.SEC_E_OK)
                {
                    throw Win32Exception.Create(result, "Unable to get the query context attribute sizes.");
                }
            }
        }
 public static extern uint QueryContextAttributes(ref SspiHandle inContextHandle, QueryContextAttributes attribute, out SecurityPackageContextSizes sizes);
示例#3
0
 public static extern uint QueryContextAttributes(ref SspiHandle inContextHandle, QueryContextAttributes attribute, out SecurityPackageContextSizes sizes);
        private void QueryBufferSizes(out SecurityPackageContextSizes sizes)
        {
            var contextAddRefSuccess = false;
            RuntimeHelpers.PrepareConstrainedRegions();
            try
            {
                DangerousAddRef(ref contextAddRefSuccess);
            }
            catch (Exception ex)
            {
                if (contextAddRefSuccess)
                {
                    DangerousRelease();
                    contextAddRefSuccess = false;
                }

                if (!(ex is ObjectDisposedException))
                    throw;
            }
            finally
            {
                var result = NativeMethods.QueryContextAttributes(ref _handle, QueryContextAttributes.Sizes, out sizes);

                DangerousRelease();

                if (result != NativeMethods.SEC_E_OK)
                {
                    throw Win32Exception.Create(result, "Unable to get the query context attribute sizes.");
                }
            }
        }