// Static Methods private static ISecurityProvider SetupPrincipal(ISecurityProvider provider, bool restore) { // Initialize the principal object. IPrincipal principal; if (restore && provider.WindowsPrincipal != null) // Initialize principal to original WindowsPrincipal. principal = provider.WindowsPrincipal; else if (restore && provider.WindowsPrincipal == null) // Initialize principal to anonymous WindowsPrincipal. principal = new WindowsPrincipal(WindowsIdentity.GetAnonymous()); else // Initialize principal to SecurityPrincipal. principal = new SecurityPrincipal(new SecurityIdentity(provider)); // Setup the current thread principal. Thread.CurrentPrincipal = principal; // Setup ASP.NET remote user principal. if (HttpContext.Current != null) HttpContext.Current.User = Thread.CurrentPrincipal; return provider; }
private static ISecurityProvider SetupPrincipal(ISecurityProvider provider, bool restore) { // Initialize the principal object. IPrincipal principal; if (restore) // Set principal to anonymous WindowsPrincipal. principal = new WindowsPrincipal(WindowsIdentity.GetAnonymous()); else // Set principal to SecurityPrincipal. principal = new SecurityPrincipal(new SecurityIdentity(provider)); // Setup the current thread principal. Thread.CurrentPrincipal = principal; if (!s_threadPolicySet) { AppDomain.CurrentDomain.SetThreadPrincipal(Thread.CurrentPrincipal); s_threadPolicySet = true; } // Setup ASP.NET remote user principal. if (HttpContext.Current != null) HttpContext.Current.User = Thread.CurrentPrincipal; return provider; }