Idioma

ConnectionOptions.Impersonation Propriedade

Definição

Obtém ou define o nível de personificação COM a ser usado para operações nesta ligação.

public:
 property System::Management::ImpersonationLevel Impersonation { System::Management::ImpersonationLevel get(); void set(System::Management::ImpersonationLevel value); };
public System.Management.ImpersonationLevel Impersonation { get; set; }
member this.Impersonation : System.Management.ImpersonationLevel with get, set
Public Property Impersonation As ImpersonationLevel

Valor de Propriedade

Devolve um ImpersonationLevel valor de enumeração que indica o nível de personificação usado para se ligar ao WMI.

Exemplos

O exemplo seguinte liga-se a um computador remoto e apresenta informações sobre o sistema operativo no computador remoto. A ConnectionOptions é criado para se ligar ao computador remoto com as opções de ligação desejadas.

using System;
using System.Management;
public class RemoteConnect
{
    public static void Main()
    {
        // Build an options object for the remote connection
        // if you plan to connect to the remote
        // computer with a different user name
        // and password than the one you are currently using.
        // This example uses the default values.
        ConnectionOptions options =
            new ConnectionOptions();
        options.Impersonation =
            System.Management.ImpersonationLevel.Impersonate;

        // Make a connection to a remote computer.
        // Replace the "FullComputerName" section of the
        // string "\\\\FullComputerName\\root\\cimv2" with
        // the full computer name or IP address of the
        // remote computer.
        ManagementScope scope =
            new ManagementScope(
            "\\\\FullComputerName\\root\\cimv2", options);
        scope.Connect();

        //Query system for Operating System information
        ObjectQuery query = new ObjectQuery(
            "SELECT * FROM Win32_OperatingSystem");
        ManagementObjectSearcher searcher =
            new ManagementObjectSearcher(scope,query);

        ManagementObjectCollection queryCollection = searcher.Get();
        foreach ( ManagementObject m in queryCollection)
        {
            // Display the remote computer information
            Console.WriteLine("Computer Name : {0}",
                m["csname"]);
            Console.WriteLine("Windows Directory : {0}",
                m["WindowsDirectory"]);
            Console.WriteLine("Operating System: {0}",
                m["Caption"]);
            Console.WriteLine("Version: {0}", m["Version"]);
            Console.WriteLine("Manufacturer : {0}",
                m["Manufacturer"]);
        }
    }
}
Imports System.Management
Public Class RemoteConnect

    Public Overloads Shared Function Main( _
    ByVal args() As String) As Integer

        ' Build an options object for the remote connection
        ' if you plan to connect to the remote
        ' computer with a different user name
        ' and password than the one you are currently using
        Dim options As ConnectionOptions
        options = New ConnectionOptions
        options.Impersonation = 3
        ' System.Management.ImpersonationLevel.Impersonate = 3

        ' Make a connection to a remote computer.
        ' Replace the "FullComputerName" section of the
        ' string "\\FullComputerName\root\cimv2" with
        ' the full computer name or IP address of the
        ' remote computer.
        Dim scope As ManagementScope
        scope = New ManagementScope( _
            "\\FullComputerName\root\cimv2", options)
        scope.Connect()

        ' Query system for Operating System information
        Dim query As ObjectQuery
        query = New ObjectQuery( _
            "SELECT * FROM Win32_OperatingSystem")
        Dim searcher As ManagementObjectSearcher
        searcher = _
            New ManagementObjectSearcher(scope, query)

        Dim queryCollection As ManagementObjectCollection
        queryCollection = searcher.Get()

        Dim m As ManagementObject
        For Each m In queryCollection
            ' Display the remote computer information
            Console.WriteLine("Computer Name : {0}", _
                m("csname"))
            Console.WriteLine("Windows Directory : {0}", _
                m("WindowsDirectory"))
            Console.WriteLine("Operating System: {0}", _
                m("Caption"))
            Console.WriteLine("Version: {0}", m("Version"))
            Console.WriteLine("Manufacturer : {0}", _
                m("Manufacturer"))
        Next

        Return 0
    End Function
End Class

Observações

A ImpersonationLevel.Impersonate configuração é vantajosa quando o fornecedor é uma aplicação ou serviço de confiança. Elimina a necessidade de o fornecedor realizar verificações de identidade e acesso do cliente para as operações solicitadas. No entanto, se por algum motivo o prestador não for confiável, permitir que se faça passar pelo cliente pode constituir uma ameaça à segurança. Nesses casos, recomendamos que esta propriedade seja definida pelo cliente para um valor inferior, como ImpersonationLevel.Identify. Note-se que isto pode causar a falha do fornecedor em realizar as operações solicitadas, por falta de permissões suficientes ou incapacidade de realizar verificações de acesso.

Valor de Propriedade

O nível de personificação COM a ser usado para operações nesta ligação. O valor predefinido é ImpersonationLevel.Impersonate, o que indica que o fornecedor WMI pode fazer-se passar pelo cliente ao realizar as operações solicitadas nesta ligação.

Segurança do .NET Framework

Confiança total no contacto imediato. Este membro não pode ser utilizado por código parcialmente confiável. Para mais informações, consulte Utilização de Bibliotecas de Código Parcialmente Confiável.

Aplica-se a