GSF.ServiceProcess.ClientInfo.SetClientUser C# (CSharp) Method

SetClientUser() private method

Updates the ClientUser.
private SetClientUser ( IPrincipal user ) : void
user IPrincipal New object to be assigned to .
return void
        internal void SetClientUser(IPrincipal user)
        {
            if ((object)user == null)
                throw new ArgumentNullException(nameof(user));

            m_clientUser = user;
        }

Usage Example

コード例 #1
0
        private bool VerifySecurity(ClientInfo client)
        {
            if ((object)client == null)
                throw new ArgumentNullException(nameof(client));

            // Set current thread principal to remote client's user principal.
            if (!(Thread.CurrentPrincipal is WindowsPrincipal) && (object)client.ClientUser != null)
                Thread.CurrentPrincipal = client.ClientUser;

            // Retrieve previously initialized security provider of the remote client's user.
            SecurityProviderCache.ValidateCurrentProvider();

            // Initialize security provider for the remote client's user from specified credentials.
            if ((!Thread.CurrentPrincipal.Identity.IsAuthenticated || (object)client.ClientUser == null) && !string.IsNullOrEmpty(client.ClientUserCredentials))
            {
                string[] credentialParts = client.ClientUserCredentials.Split(':');

                if (credentialParts.Length == 2)
                {
                    ISecurityProvider provider = SecurityProviderUtility.CreateProvider(credentialParts[0]);

                    if (provider.Authenticate(credentialParts[1]))
                        SecurityProviderCache.CurrentProvider = provider;
                }
            }

            // Save the initialized security provider of remote client's user for subsequent uses.
            if (client.ClientUser != Thread.CurrentPrincipal)
                client.SetClientUser(Thread.CurrentPrincipal);

            return (object)client.ClientUser != null && client.ClientUser.Identity.IsAuthenticated;
        }