Visual C# .NET, Visual C# 2005 veya sonraki sürümleri kullanarak bir Web sayfasından kesin adı olan bir derleme aranacak AllowPartiallyTrustedCallers özniteliği nasıl kullanılır

Makale çevirileri Makale çevirileri
Makale numarası: 839300 - Bu makalenin geçerli olduğu ürünleri görün.
Önemli Bu makalede, güvenlik ayarlarını düşürmüş veya yardımcı olacak bir bilgisayarda güvenlik özellikleri devre dışı bırakma hakkında bilgiler içerir. Bu değişiklikleri, belirli bir soruna geçici çözüm bulmak için yapabilirsiniz. Bu değişiklikleri yapmadan önce, bu geçici çözümün çalışma ortamınızda uygulanmasıyla ilişkili riskleri değerlendirmeniz önerilir. Bu geçici çözümü uygularsanız, sisteminizin korunmasına yardımcı olabilecek uygun ek önlemleri de alın.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Web sayfasındaki bir <a0>Windows</a0> kullanıcı denetimi aramak isteyebilirsiniz. Güvenli bir kaynaklara erişebilir ve güçlü bir ada sahip bir derleme olarak yerleşik bir Windows kullanıcı denetimi aramak için <a0></a0>, bir derlemeye AllowPartiallyTrusted derleme özniteliği ile <a1>Windows</a1> kullanıcı denetiminin işaretlemelisiniz. Güvenli kaynak. erişmek Windows kullanıcı denetime izin vermek için Assert yöntemine bir ça?r? içermesi gerekir

Giriş

Bu adım adım makalede, Windows aranacak açıklamaktadır kullanıcı denetimi bir Web sayfasından. Bu makalede Windows kullanıcı denetimi güçlü bir ada sahip bir derleme olarak yerleşik olarak bulunur. Bu makaledeki örnek derleme kesin adı olan bir Web sayfasından erişilebilen derlemenin AllowPartiallyTrustedCallers özniteliği kullanmayı açıklamaktadır. Bu makaledeki örnek de Assert yönteminin nasıl kullanılacağını açıklar.

Güçlü bir ada sahip bir anahtar çifti oluşturma seçeneklerine sahipsiniz

Güçlü bir ada sahip BIR anahtar çifti derleme kesin adı olan bir kullanıcı denetimin imzalamak için kullanılır. Derleme kısmen güvenilen koddan kullanma izni veren bir kod grubu oluşturduğunuzda, kesin ad kullanılır.
  1. Visual Studio'nun komut istemini açın.

    Microsoft Visual Studio .NET 2002, Başlat ' ı tıklatın, Programlar ' ın üzerine gelin, Visual Studio.NET ' i işaretleyin, Visual Studio .NET araçları ' nın üzerine gelin ve Visual Studio .NET komut istemi ' ni tıklatın. Visual Studio .NET komut istemi penceresi görünür.

    Microsoft Visual Studio .NET 2003'te, Başlat ' ı tıklatın, Programlar ' ın üzerine gelin, Visual Studio .NET 2003 ' e işaret, Visual Studio .NET araçları ' nın üzerine gelin ve Visual Studio .NET 2003 komut istemi ' ni tıklatın. Visual Studio .NET 2003 komut istemi penceresi görünür.

    Visual Studio 2005 ' te Başlat ' ı tıklatın, Programlar ' ın üzerine gelin, Visual Studio 2005 ' e işaret, Visual Studio 2005 araçları ' nın üzerine gelin ve Visual Studio 2005 komut istemi ' ni tıklatın. Visual Studio 2005 komut istemi penceresi görünür.

    Visual Studio 2008 için Başlat ' ı tıklatın, Programlar ' ın üzerine gelin, Visual Studio 2008 ' e işaret, Visual Studio 2008 araçları ' nın üzerine gelin ve Visual Studio 2008 komut istemi ' ni tıklatın. Visual Studio'nun 2008Command komut istemi penceresi görüntülenir.
  2. Komut istemine aşağıdaki komutu yazın ve ENTER tuşuna basın:
    sn -k c:\snKey.snk

Microsoft Visual C# .NET, Microsoft Visual C# 2005 veya sonraki bir sürümünü kullanarak bir <a0>Windows</a0> kullanıcı denetimi oluşturun.

Uyarı Bu geçici çözüm, kötü niyetli kullanıcılar veya virüsler gibi kötü amaçlı yazılımlar tarafından gerçekleştirilen bilgisayarınızın veya ağınızın saldırılara karşı daha savunmasız kılabilir. Bu geçici çözüm önerilmez, ancak gerekli olduğunu düşünürseniz kullanabilmeniz amacıyla bu bilgiler sağlanmaktadır. Bu çözümü kullanmak kendi sorumluluğunuzdadır.

Bu kullanıcı denetimini, derleme AllowPartiallyTrustedCallers özniteliğini kullanın gösterilmiştir. Derleme AllowPartiallyTrustedCallers özniteliği kullanan sürece güçlü bir ada sahip bir derleme yalnızca tam olarak güvenilen bir arayan tarafından çağrılabilir. Kullanıcı denetimi için örnek de Assert yönteminin nasıl kullanılacağını gösterir. Arama kodu izni isteğe bağlı tarafından korunan bir kaynağa erişmek için Assert yöntemini çağıran bir kod kullanabilirsiniz Assert yöntemi bildirir. Yığında daha yüksek olan Arayanların kaynağa erişim izni verilmiş olan değil, kod kaynak erişebilirsiniz.

Bu kullanıcı Denetim açık olan iletişim kutusunu kullanarak, bir dosya seçmenizi sağlar. Denetim, sonra liste kutusunda metin dosyasını açar. Bir metin kutusu ve bir liste kutusu, bu kullanıcı denetimi kullanıcı arabirimi içerir. Metin kutusunu, seçili dosya adını görüntüler ve liste kutusunda seçili dosya içeriğini gösterir.

Seçili dosya adı OpenFileDialog kutusundan okumak ve izin türü verilmelidir FileIOPermission dosyası okunamıyor. Kullanıcı denetimi, kod grubu bu izni olması gerekir. Web sayfası denetimi çağıran, bu izni yok.

Arayan, gerekli FileIOPermission izin türü olmaması nedeniyle, başarılı olmayan bir yığın ilerleme önlemek için <a0></a0>, Assert yöntemini kullanın. Yanlış veya açamayacağı Assert yöntemi kullanılırsa Assert yöntemi güvenlik açıkları açabileceğinizi unutmayın. Bu nedenle çok dikkatle Assert yöntemi kullanmanız gerekir. Dosya işlemi tamamlanır tamamlanmaz BIR RevertAssert yöntemi Assert yöntemi izlemeniz gerekir.

Not Bu kullanıcı Denetim dosyasının içeriği liste kutusunda doğru görünmesini sağlamak için <a0></a0>, yalnızca metin dosyaları seçmek için kullanın.
  1. Microsoft Visual Studio .NET, Visual Studio 2005 veya Visual Studio'nun sonraki bir sürümünü başlatın.
  2. Dosya menüsünde Yeni ' nin üzerine gelin ve sonra Project ' i tıklatın. <a0>New Project</a0> iletişim kutusu görüntülenir.
  3. Project Types altında Visual C# Projects ' ı tıklatın.

    Not Visual Studio, Visual C#Project Types altında'ni tıklatın.
  4. Şablonları altında tıklatın Windows Denetim Kitaplığı.
  5. Ad kutusuna UserControl yazın.
  6. Tamam ' ı tıklatın.
  7. Solution Explorer (Çözüm Gezgini) penceresinde, UserControl1.cs sağ tıklatın ve Kod Görüntüle</a1>'ı tıklatın. UserControl1.cs dosyası görüntülenir.
  8. Varolan kodu aşağıdaki kodla değiştirin: <a1>
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Drawing;
    using System.Data;
    using System.Windows.Forms;
    using System.IO;
    using System.Security;
    using System.Security.Permissions;
    using System.Reflection;
    using System.Runtime.CompilerServices;
    
    [assembly:AllowPartiallyTrustedCallers]
    
    namespace UserControl
    {
    	/// <summary>
    	/// Summary description for UserControl1.
    	/// </summary>
    	public class UserControl1 : System.Windows.Forms.UserControl
    	{
    		private System.Windows.Forms.TextBox textBox1;
    		private System.Windows.Forms.ListBox listBox1;
    		/// <summary>
    		/// Required designer variable.
    		/// </summary>
    		private System.ComponentModel.Container components = null;
    
    		public UserControl1()
    		{
    			// This call is required by the Windows.Forms Form Designer.
    			InitializeComponent();
    
    			// TODO: Add any initialization after the InitForm call.
    			OpenFileDialog fileDialog = new OpenFileDialog();
    			if(fileDialog.ShowDialog() == DialogResult.OK)
    			{
    				// Reading the name of the selected file from the OpenFileDialog box
    				// and reading the file requires FileIOPermission.   
    				// The Assert command must be followed by a RevertAssert as soon as the file operation 
    				// is completed.
    				new FileIOPermission(PermissionState.Unrestricted).Assert();
    				textBox1.Text = fileDialog.FileName;
    				// Display the contents of the file in the text box.
    				FileStream fsIn = new FileStream(textBox1.Text, FileMode.Open, FileAccess.Read, 
    					FileShare.Read);
    				StreamReader sr = new StreamReader(fsIn);
    			
    				// Process every line in the file.
    				for (String Line = sr.ReadLine(); Line != null; Line = sr.ReadLine()) 
    				{
    					listBox1.Items.Add(Line);
    				}
    				// It is very important to call RevertAssert to restore the stack walk for
    				// file operations.
    				FileIOPermission.RevertAssert();
    			}
    
    		}
    
    		/// <summary>
    		/// Clean up any resources that are being used.
    		/// </summary>
    		protected override void Dispose( bool disposing )
    		{
    			if( disposing )
    			{
    				if( components != null )
    					components.Dispose();
    			}
    			base.Dispose( disposing );
    		}
    
    		#region Component Designer generated code
    		/// <summary>
    		/// Required method for Designer support. Do not modify 
    		/// the contents of this method with the code editor.
    		/// </summary>
    		private void InitializeComponent()
    		{
    			this.textBox1 = new System.Windows.Forms.TextBox();
    			this.listBox1 = new System.Windows.Forms.ListBox();
    			this.SuspendLayout();
    			// 
    			// textBox1
    			// 
    			this.textBox1.Location = new System.Drawing.Point(32, 16);
    			this.textBox1.Name = "textBox1";
    			this.textBox1.TabIndex = 0;
    			this.textBox1.Text = "textBox1";
    			// 
    			// listBox1
    			// 
    			this.listBox1.Location = new System.Drawing.Point(144, 16);
    			this.listBox1.Name = "listBox1";
    			this.listBox1.Size = new System.Drawing.Size(120, 95);
    			this.listBox1.TabIndex = 1;
    			// 
    			// UserControl1
    			// 
    			this.Controls.Add(this.listBox1);
    			this.Controls.Add(this.textBox1);
    			this.Name = "UserControl1";
    			this.Size = new System.Drawing.Size(376, 120);
    			this.ResumeLayout(false);
    
    		}
    		#endregion
    			}
    }
    
  9. Solution Explorer'da (Çözüm Gezgini), AssemblyInfo.cs ' ı sağ tıklatın ve Kod Görüntüle</a1>'ı tıklatın. AssemblyInfo.cs dosyası görüntülenir.
  10. Aşağıdaki kodu bulun:
    [assembly: AssemblyVersion("1.0.*")]
    bu kodu aşağıdaki kodla değiştir:
    [assembly: AssemblyVersion("1.0.0.0")]
  11. Aşağıdaki kodu bulun:
    [assembly: AssemblyKeyFile("")]
    bu kodu aşağıdaki kodla değiştir:
    [assembly: AssemblyKeyFile("c:\\snKey.snk")]
  12. Yapı) menüsünde tıklatın Build Solution.

Derleme için izinleri atamak için bir kod grubu oluşturma

Uyarı Bu geçici çözüm, kötü niyetli kullanıcılar veya virüsler gibi kötü amaçlı yazılımlar tarafından gerçekleştirilen bilgisayarınızın veya ağınızın saldırılara karşı daha savunmasız kılabilir. Bu geçici çözüm önerilmez, ancak gerekli olduğunu düşünürseniz kullanabilmeniz amacıyla bu bilgiler sağlanmaktadır. Bu çözümü kullanmak kendi sorumluluğunuzdadır.

Kod grubu, bir yönetici tanımlı ölçütler, bir üyelik koşulu anılır) eşleşip eşleşmediğini belirler. Kod grubu, derleme eşleşirse, bu kod grubu ile ilişkilendirilmiş bir izin kümesi derleme verir.

Kod grubu oluşturmak için <a0></a0>:
  1. Başlat ' ı tıklatın, Ayarlar ' ın üzerine gelin ve sonra Denetim Masası ' nı tıklatın. Denetim Masası penceresi görüntülenir.
  2. Yönetimsel Araçlar ' ı çift tıklatın. Yönetimsel Araçlar penceresi görüntülenir.
  3. Microsoft Visual Studio .NET 2002'de Microsoft .NET Framework yapılandırması ' nı çift tıklatın. .NET Framework Configuration penceresi görüntülenir.

    Microsoft Visual Studio .NET 2003 için çift Microsoft .NET Framework 1.1 Configuration. .NET yapılandırması 1.1 penceresi görüntülenir.

    Microsoft Visual Studio 2005 veya sonraki sürümleri, Microsoft .NET Framework 2.0 yapılandırması ' nı çift tıklatın. .NET Framework 2.0 yapılandırma penceresi görüntülenir.
  4. Sol bölmede, Çalışma zamanı güvenlik ilkesi ' ni genişletin, makine genişletin ve Kod grupları ' nı genişletin.
  5. All_Code ' ı sağ tıklatın ve sonra da Yeni'yi tıklatın. Kod grubu Oluştur Sihirbazı görüntülenir.
  6. <a1>Oluşturma</a1> yeni bir kod grubu, ad kutusuna MyUserControlCodeGroup yazın seçili olduğundan emin olun ve sonra ileri ' yi tıklatın. Bir koşul türü seç sayfası görünür.
  7. Bu kod grubu için koşul türü seçin</a0> listesinde, Güçlü adı tıklatın.
  8. Al ' ı tıklatın. Alma kesin adı Kimden derleme iletişim kutusu görüntülenir.
  9. "Microsoft Visual C# .NET, Microsoft Visual C# 2005 veya sonraki bir sürümünü kullanarak bir <a0>Windows</a0> kullanıcı denetimi oluşturma" bölümünde oluşturduğunuz UserControl.dll dosyasını bulun ve sonra da ' ı tıklatın.
  10. Ileri ' yi tıklatın. Kod grubu için bir izin kümesi atamak sayfası görüntülenir.
  11. Varolan izni kullan'ı tıklatın, FullTrust listeden seçin ve ileri ' yi tıklatın. Sihirbazı Tamamlanıyor sayfasında görünür.
  12. Kod grubu Oluştur Sihirbazı kapatmak için son ' u tıklatın.

Kullanıcı denetimindeki'ı çağırmak için bir HTML dosyası oluşturma

Derleme için izinleri atamak için bir kod grubu oluşturduktan sonra kullanıcı denetimi tarayıcıdan aramak için bir HTML dosyası oluşturmalısınız ve kullanıcı denetimi başarıyla adlı emin olmak için ortamını ayarlayamıyor.
  1. Başlat ' ı tıklatın, Çalıştır ' ı tıklatın, notepad yazın ve Tamam ' ı tıklatın.
  2. Not Defteri'nde, aşağıdaki kodu yapıştırın:
    <OBJECT id="MyWinControl1" height="200" width="200" classid="http:UserControl.dll#UserControl.UserControl1" VIEWASTEXT>
        
    </OBJECT> 
  3. Kök klasörde, Microsoft ınternet ınformation Services'te (IIS), dosyayı CallUserControl.htm kaydedin.
  4. IIS kök klasörüne "Microsoft Visual C# .NET, Microsoft Visual C# 2005 veya sonraki bir sürümünü kullanarak bir <a0>Windows</a0> kullanıcı denetimi oluşturma" bölümünde oluşturduğunuz UserControl.dll dosyasını kopyalayın.
  5. Microsoft ınternet Explorer'ı açın.
  6. Adres kutusuna http://localhost/CallUserControl.htm yazın ve ENTER tuşuna basın. iletişim kutusu görüntülenir.
  7. Herhangi bir metin dosyasını bulun ve sonra da ' ı tıklatın. Metin dosyasının tarayıcı ListBox denetiminde görünür.

Referanslar

Daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitelerini ziyaret edin:
Kod grubu .NET Framework Yapılandırma aracını kullanarak yapılandırma
http://msdn2.microsoft.com/en-us/library/eb8xw74a(vs.71).aspx

CodeAccessPermission.Assert yöntemi
http://msdn2.microsoft.com/en-us/library/system.security.codeaccesspermission.assert(vs.71).aspx

.NET framework derlemeler ve AllowPartiallyTrustedCallers özniteliği
http://msdn2.microsoft.com/en-us/library/aa302328.aspx

AllowPartiallyTrustedCallersAttribute sınıfı
http://msdn2.microsoft.com/en-us/library/system.security.allowpartiallytrustedcallersattribute(vs.71).aspx

Derleme güvenlik konuları
http://msdn2.microsoft.com/en-us/library/ab4eace3(vs.71).aspx

Güvenlik briefs: güçlü adlarıyla .NET Framework'de güvenlik
http://msdn2.microsoft.com/en-us/library/aa302416.aspx

Özellikler

Makale numarası: 839300 - Last Review: 15 Temmuz 2008 Salı - Gözden geçirme: 4.1
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2008 Express Edition
Anahtar Kelimeler: 
kbmt kbhowtomaster kbhowto kblistbox kbfileio kbdll kbcontrol kbweb kbuser kbsecurity kbpolicy kbopenfile KB839300 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:839300

Geri Bildirim Ver

 

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