Esempio n. 1
0
 internal static void RunInternal(SecurityContext securityContext, ContextCallback callBack, object state)
 {
     if (SecurityContext.cleanupCode == null)
     {
         SecurityContext.tryCode     = new RuntimeHelpers.TryCode(SecurityContext.runTryCode);
         SecurityContext.cleanupCode = new RuntimeHelpers.CleanupCode(SecurityContext.runFinallyCode);
     }
     SecurityContext.SecurityContextRunData userData = new SecurityContext.SecurityContextRunData(securityContext, callBack, state);
     RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(SecurityContext.tryCode, SecurityContext.cleanupCode, userData);
 }
Esempio n. 2
0
 internal static void runFinallyCode(object userData, bool exceptionThrown)
 {
     SecurityContext.SecurityContextRunData securityContextRunData = (SecurityContext.SecurityContextRunData)userData;
     securityContextRunData.scsw.Undo();
 }
Esempio n. 3
0
 internal static void runTryCode(object userData)
 {
     SecurityContext.SecurityContextRunData securityContextRunData = (SecurityContext.SecurityContextRunData)userData;
     securityContextRunData.scsw = SecurityContext.SetSecurityContext(securityContextRunData.sc, Thread.CurrentThread.GetExecutionContextReader().SecurityContext, true);
     securityContextRunData.callBack(securityContextRunData.state);
 }