Aracılığıyla paylaş


ConnectionOptions.Impersonation Özellik

Tanım

Bu bağlantıdaki işlemler için kullanılacak COM kimliğe bürünme düzeyini alır veya ayarlar.

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

Özellik Değeri

WMI'ye bağlanmak için kullanılan kimliğe bürünme düzeyini gösteren bir ImpersonationLevel numaralandırma değeri döndürür.

Örnekler

Aşağıdaki örnek, uzak bir bilgisayara bağlanır ve uzak bilgisayardaki işletim sistemi hakkındaki bilgileri görüntüler. ConnectionOptions uzak bilgisayara istenen bağlantı seçenekleriyle bağlanmak için bir oluşturulur.

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

Açıklamalar

Sağlayıcı ImpersonationLevel.Impersonate güvenilir bir uygulama veya hizmet olduğunda bu ayar avantajlıdır. Sağlayıcının istenen işlemler için istemci kimliği ve erişim denetimleri gerçekleştirmesi gereksinimini ortadan kaldırır. Ancak, herhangi bir nedenle sağlayıcıya güvenilemiyorsa, istemcinin kimliğine bürünebilmesine izin vermek bir güvenlik tehdidine neden olabilir. Böyle durumlarda, bu özelliğin istemci tarafından gibi ImpersonationLevel.Identifydaha düşük bir değere ayarlanmasını öneririz. Bunun sağlayıcının istenen işlemleri gerçekleştirememesine, yeterli izinlerin olmaması veya erişim denetimlerinin gerçekleştirilememesine neden olabileceğini unutmayın.

Özellik Değeri

Bu bağlantıdaki işlemler için kullanılacak COM kimliğe bürünme düzeyi. Varsayılan değer, ImpersonationLevel.ImpersonateWMI sağlayıcısının bu bağlantıda istenen işlemleri gerçekleştirirken istemcinin kimliğine bürünebileceğini gösterir.

.NET Framework Güvenliği

Anında arayanlar için tam güven. Bu üye kısmen güvenilen kodla kullanılamaz. Daha fazla bilgi için bkz. Kısmen Güvenilen Koddan Kitaplıkları Kullanma.

Şunlara uygulanır