Ejemplo n.º 1
0
        // 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;
        }
Ejemplo n.º 2
0
        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;
        }