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

Ö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.

309023
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Ö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.

back to the top

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.
back to the top

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)>					
back to the top

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 Class1End Class					
back to the top

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 SubPublic Function CheckManagerRole() As Boolean    If ContextUtil.IsSecurityEnabled Then        Return SecurityCallContext.CurrentCall.IsCallerInRole("Manager")    End IfEnd FunctionPublic Function GetAccountName() As String    If ContextUtil.IsSecurityEnabled Then        Return SecurityCallContext.CurrentCall.OriginalCaller.AccountName    End IfEnd Function					
back to the top

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.
back to the top

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 IfConsole.WriteLine("Your account name is: " & s.GetAccountName)s.Dispose()Console.WriteLine("Press Enter to exit")Console.ReadLine()					
back to the top

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.
back to the top

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.
back to the top

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.
back to the top
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.

back to the top





Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 309023 - Son İnceleme: 02/24/2014 17:52:54 - Düzeltme: 3.3

  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • kbnosurvey kbarchive kbmt kbvs2005applies kbvs2005swept kbhowtomaster kbinfo KB309023 KbMttr
Geri bildirim