/// <summary>确定是否已取消当前安全上下文的 Windows 标识部分的流动。</summary> /// <returns>如果已取消流动,则为 true;否则为 false。</returns> public static bool IsWindowsIdentityFlowSuppressed() { if (!SecurityContext._LegacyImpersonationPolicy) { return(SecurityContext.IsFlowSuppressed(SecurityContextDisableFlow.WI)); } return(true); }
public static SecurityContext Capture() { if (SecurityContext.IsFlowSuppressed()) { return((SecurityContext)null); } StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller; return(SecurityContext.Capture(Thread.CurrentThread.GetExecutionContextReader(), ref stackMark) ?? SecurityContext.CreateFullTrustSecurityContext()); }
internal static AsyncFlowControl SuppressFlow(SecurityContextDisableFlow flags) { if (SecurityContext.IsFlowSuppressed(flags)) { throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_CannotSupressFlowMultipleTimes")); } ExecutionContext mutableExecutionContext = Thread.CurrentThread.GetMutableExecutionContext(); if (mutableExecutionContext.SecurityContext == null) { mutableExecutionContext.SecurityContext = new SecurityContext(); } AsyncFlowControl result = default(AsyncFlowControl); result.Setup(flags); return(result); }
public static bool IsFlowSuppressed() { return(SecurityContext.IsFlowSuppressed(SecurityContextDisableFlow.All)); }