Bir Visual Basic .NET veya Visual Basic 2005 COM + uygulamasındaki güvenlik denetimi nasıl kaldırılır

Makale çevirileri Makale çevirileri
Makale numarası: 309023 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bir anahtar, çoğu COM + uygulamalarının güvenliğini sağlamak için işlevidir. Sınama ve System.EnterpriseServices'ı ad alanında, .NET Framework ile .NET uygulamalarında COM + güvenliği temel bilgileri almak olasıdır.

Bir Visual Basic .NET veya Visual Basic 2005 uygulaması COM + Güvenliği'ni başlatmak için <a0></a0>, çeşitli sınıf ve montaj düzeyi öznitelikleri, System.EnterpriseServices.SecurityCallContext nesne gibi .NET Framework tarafından sağlanan bazı nesneler yan? s?ra kullanılır.

Gereksinimler

Aşağıdaki donanım, yazılım ve ağ altyapısı, bu makalede açıklanan yordamları gerçekleştirmek için gereksinim duyduğunuz
  • Microsoft Visual Basic .NET'i veya Microsoft Visual Basic 2005
yan? s?ra aşağıdakileri deneyin:
  • COM + uygulamaları geliştirme
  • Visual Basic .NET veya Visual Basic 2005 sınıflarıyla geliştirme
  • Sınıf ve montaj düzeyi öznitelikleri bildirmek.

Bir yeni Visual Basic .NET veya Visual Basic 2005 sınıf kitaplığı oluşturma

  1. Microsoft Visual Studio .NET veya Visual Studio 2005'ı başlatın ve sonra "Security" adlı yeni bir Visual Basic Class Library projesi oluşturun.
  2. Proje) menüsünde Add Reference ' ı tıklatın. .NET bileşenlerinin listesi, System.EnterpriseServices'ı ' ı tıklatın, Seç ' i tıklatın ve sonra Tamam ' ı tıklatın.

    Not Visual Studio 2005'te Seç ' i gerekmez.
  3. Güçlü bir sınıf Kitaplığınızın adını oluşturmak için <a0></a0>, Başlat ' ı tıklatın, Çalıştır ' ı tıklatın ve sonra da aşağıdaki komutu yazın:
    "C:\Program Files\Microsoft Visual Studio.NET\FrameworkSDK\Bin\sn.exe" Security.SNK -k
    Not Visual Studio 2005'te, aşağıdaki komutu yazın:
    "C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\sn.exe" Security.SNK -k
  4. Security.SNK dosya proje dizininize kopyalayın.
  5. Solution Explorer'da açmak için <a2>AssemblyInfo.vb</a2> dosyasını çift tıklatın.
  6. Diğer derleme bilgileri aşağıdaki satırları ekleyin:
    <Assembly: AssemblyKeyFileAttribute("Security.SNK")> 
    <Assembly: AssemblyDelaySign(False)>
    					

Derleme ve sınıf öznitelikleri

  1. Class1.vb kod penceresinde açın ve sonra da System.EnterpriseServices'ı için ımports deyimi ekleyin.
  2. Güvenlik uygulama düzeyinde etkinleştirmek için <a0></a0>, aşağıdaki derleme özniteliği ımports ifadenin ekleyin:
    <Assembly: ApplicationAccessControl(True)>
    					
  3. Uygulama sunucusu etkin bir uygulama olarak ayarlamak için aşağıdaki özniteliği önceki derleme özniteliği sonra ekleyin:
    <Assembly: ApplicationActivation(ActivationOption.Server)>
    					
  4. Güvenlik bileşeni içinde denetimi etkinleştirmek için aşağıdaki sınıf özniteliğini ekleyin:
    <ComponentAccessControl(True), _
    					
  5. Varsayılan kullanıcı ile yöneticisi rol oluşturmak için sınıf ikinci bir öznitelik eklemek:
    SecurityRole("Manager"), _
    					
  6. Everyone içeren bir Guest rolü oluşturmak için bir üçüncü Sınıf özniteliği eklemek varsayılan olarak, kullanıcı grubu:
    SecurityRole("Guest", True)> _
    					
    şekilde sınıf modülünün şu anda aşağıdaki gibi görünmelidir:
    Imports System.EnterpriseServices
    
    <Assembly: ApplicationAccessControl(True)> 
    <Assembly: ApplicationActivation(ActivationOption.Server)> 
    <ComponentAccessControl(True), _
    SecurityRole("Manager"), _
    SecurityRole("Guest", True)> _
    Public Class Class1
    
    End Class
    					

Bileşen kod oluşturma

  1. Sınıf tanımında Güvenli sınıfı yeniden adlandırın.
  2. System.EnterpriseServices.ServicedComponent devralmak için sınıf içinde bir ınherits deyimi ekleyin.
  3. Sınıf için aşağıdaki kodu ekleyin:
    Public Sub New()
        MyBase.New()
    End Sub
    
    Public Function CheckManagerRole() As Boolean
        If ContextUtil.IsSecurityEnabled Then
            Return SecurityCallContext.CurrentCall.IsCallerInRole("Manager")
        End If
    End Function
    
    Public Function GetAccountName() As String
        If ContextUtil.IsSecurityEnabled Then
            Return SecurityCallContext.CurrentCall.OriginalCaller.AccountName
        End If
    End Function
    					

Oluşturmak ve bu uygulamayı yüklemek

  1. Kaydetmek ve projeyi derleyin.
  2. Başlat ' ı tıklatın, Programlar ' ın üzerine gelin, Visual Studio.NET veya Visual Studio 2005 ' in üzerine gelin, Visual Studio.NET Tools veya Visual Studio 2005 Araçlar ' ın üzerine gelin ve sonra Visual Studio. NET'i komut istemi ' ni veya Visual Studio 2005 komut istemi ' ni tıklatın.
  3. Komut isteminden, projenizin depo gözü klasörüne gidin.
  4. Derleme içinde genel birleştirme önbelleğine yüklemek için aşağıdaki komutu kullanın:
    /i security.dll Gacutil
    Not: Bu da .NET Configuration ek bileşenini Microsoft Yönetim Konsolu için kullanılarak yapılabilir.
  5. Uygulamayı COM + ile kaydettirmek için aşağıdaki komutu kullanın:
    regsvcs Security.dll
    Not: Bu adımı için yönetici ayrıcalıkları gereklidir.

Donanımı Sınama uygulaması oluşturma

  1. Visual Studio .NET veya Visual Studio 2005'i başlatın ve sonra TestSecurity adlı yeni bir Visual Basic konsol uygulaması oluşturun.
  2. Proje) menüsünde Add Reference ' ı tıklatın. .NET bileşenlerinin listesi, System.EnterpriseServices'ı seçin ve sonra da <a2>Seç</a2>'i tıklatın. Gözat ' ı tıklatın, güvenlik proje <a1>depo gözü</a1> klasörüne gidin, Security.dll seçin ve ' ı tıklatın. Iletişim kutusunu kapatmak için Tamam ' ı tıklatın.

    Not Visual Studio 2005'te, cilck için Select ve Open yetkiniz yok.
  3. Module1.vb Kod düzenleyicisinde açın ve sonra da Sub Main bulun.
  4. Güvenlik uygulamasını sınamak için aşağıdaki kodu ekleyin:
    Dim s As New Security.Secure()
    
    If s.CheckManagerRole() Then
        Console.WriteLine("You are a manager")
    Else
        Console.WriteLine("You are not a manager")
    End If
    
    Console.WriteLine("Your account name is: " & s.GetAccountName)
    s.Dispose()
    Console.WriteLine("Press Enter to exit")
    Console.ReadLine()
    					

Sınama donanımı çalıştırın.

  1. Kaydetme ve sınama donanımı Projeyi derleyin.
  2. Projeyi çalıştırın ve sonra onaylayın ", bir yönetici olmadığınızdan" uygulama çıkmadan önce Windows kullanıcı bilgilerinizle görüntülenir.

Kullanıcı Yöneticisi rolü ve Retest ekleyin...

  1. Başlat ' ı tıklatın, Programlar ' ın üzerine gelin, Yönetimsel Araçlar ' ın üzerine gelin ve sonra Bileşen Hizmetleri ' ni tıklatın.
  2. Bileşen Hizmetleri yönetim aracı içindeki ComponentServices\Computers\My Computer\COM + Applications\Security uygulamaya gidin.
  3. Roles\Manager\Users klasörünü genişletin ve sonra kullanıcılar ' ı sağ tıklatın. Bağlam menüsünden Yeni ' yi tıklatın ve sonra kullanıcı ' yı tıklatın. Kullanıcılar listesinde önceden test edilmiş güvenlik uygulaması tarafından görüntülenen hesabı tıklatın (kullanıcı hesabınızın olacaktır). Ekle ' yi tıklatın ve sonra iletişim kutusunu kapatmak için Tamam ' ı tıklatın.
  4. ", Bir yönetici olduğunu" doğrulamak için sınama donanımı retest görüntülenecektir.

SORUN GİDERME

  • Bu, örneğin istemci kodu, istemci uygulamasının sunucu bileşeninin aynı bilgisayarda yüklü olduğunda çalışır. Istemci uygulamasını başka bir bilgisayara yüklenmesi, .NET remoting kullanılmalıdır.
  • Kaldırma seçeneği gactutil.exe (gacutil /u sunucusu) için genel derleme önbelleğinden sunucu bileşenini kaldırmak için kullanın. Yeni bir sürümünü yüklediğinizde, bu önceki sürümü önbellekten kaldırılmaz.

Referanslar

COM + Güvenliği'ni kullanma hakkında daha fazla bilgi için .NET Framework başvurusunu .NET Framework belgelerinde ".NET Framework sınıf kitaplığı" bölümünde <a1>System.EnterpriseServices'ı Namespace</a1> konularında verilen bilgileri görüntüleyin.







Özellikler

Makale numarası: 309023 - Last Review: 24 Şubat 2014 Pazartesi - Gözden geçirme: 3.3
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Anahtar Kelimeler: 
kbnosurvey kbarchive kbmt kbvs2005applies kbvs2005swept kbhowtomaster kbinfo KB309023 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:309023

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com