Jak použít atribut AllowPartiallyTrustedCallers volání sestavení, která má silný název z webové stránky pomocí aplikace Visual C#.NET, Visual C# 2005 nebo novější

Překlady článku Překlady článku
ID článku: 839300 - Produkty, které se vztahují k tomuto článku.
Důležité Tento článek obsahuje informace o tom, jak pomoci nižší nastavení zabezpečení nebo vypnutí funkcí zabezpečení v počítači. Jste můžete provést tyto změny řešení určitého problému. Před provedením těchto změny, doporučujeme vyhodnotit rizika, které jsou přidruženy Implementace tohoto zástupného řešení v konkrétním prostředí. Pokud implementujete Toto zástupné řešení, převzít všechny vhodné kroky k ochraně vašeho systém.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Můžete volat prvek uživatele systému Windows z webové stránky. Chcete-li volat prvek uživatele systému Windows, můžete přístup k zabezpečeným prostředkům a která je vytvořena jako sestavení, která má silný název, je třeba označit sestavení uživatelský ovládací prvek systému Windows se AllowPartiallyTrusted Atribut sestavení. Volání musí obsahovat také Vyhodnocení Metoda umožňující uživatelský ovládací prvek systému Windows pro přístup zabezpečené prostředek.

ÚVOD

Tento podrobný článek popisuje, jak volání systému Windows uživatelský ovládací prvek z webové stránky. Řídit uživatele systému Windows, která v tomto článku Popisuje je vytvořena jako sestavení, která má silný název. V tomto vzorku článek popisuje, jak použít AllowPartiallyTrustedCallers Atribut sestavení tak, že sestavení, která má silný Název lze přistupovat z webové stránky. Popisuje také vzorku v článku použití Vyhodnocení Metoda.

Vytvořit dvojici klíčů, která má silný název

Dvojice klíčů, která má silný název je použit k podepsání sestavení pro uživatelský ovládací prvek, který nemá silný název. Silný název je použit při vytváření udělí oprávnění použít sestavení z částečně důvěryhodného kódu skupiny kód.
  1. Otevřete příkazový řádek programu Visual Studio.

    V aplikaci Microsoft Visual Studio.NET 2002, klepněte na tlačítko Spustit, přejděte na příkazProgramy, přejděte na příkaz Microsoft Visual Studio .NET, přejděte na příkaz Visual Studio.SÍŤOVÉ nástrojea pak Klepněte na tlačítko Visual Studio.NET příkazového řádku. Visual Studio .Zobrazí se okno příkazového řádku příkaz NET.

    V aplikaci Microsoft Visual Studio.NET 2003, klepněte na tlačítko Spustit, přejděte na příkaz Programy, příkaz k Microsoft Visual Studio.NET 2003, přejděte na příkaz Vizuální Studio.SÍŤOVÉ nástrojea klepněte na tlačítko Visual Studio.NET 2003 Příkazový řádek. Visual Studio.NET 2003 příkazový řádek Zobrazí se.

    V aplikaci Visual Studio 2005 klepněte na tlačítkoSpustit, přejděte na příkaz Programy, přejděte na příkazMicrosoft Visual Studio 2005, přejděte na příkaz Visual Studio 2005 Toolsa klepněte na tlačítko Visual Studio 2005 příkaz Výzva. Okno aplikace Visual Studio 2005 příkazového řádku Zobrazí se.

    V aplikaci Visual Studio 2008 klepněte na tlačítkoSpustit, přejděte na příkaz Programy, přejděte na příkazMicrosoft Visual Studio 2008, přejděte na příkaz Visual Studio Nástroje 2008a klepněte na tlačítko Visual Studio 2008 příkazu Výzva. Okna příkazového řádku 2008Command Visual Studio Zobrazí se.
  2. Zadejte následující příkaz na příkazovém řádku a stiskněte klávesu ZADEJTE:
    sn -k c:\snKey.snk

Vytvořte ovládací prvek uživatele systému Windows pomocí jazyka Microsoft Visual C#.NET, Microsoft Visual C# 2005 nebo novější

Upozornění Toto řešení může lépe počítače nebo sítě útoku uživatelů se zlými úmysly nebo škodlivému softwaru, například viry. Doporučujeme toto řešení nedoporučujeme, ale poskytujeme tyto informace takže můžete řešení implementovat vlastního uvážení. Pomocí této řešení na vlastní nebezpečí.

Tento ovládací prvek uživatele ukazuje, jak použít AllowPartiallyTrustedCallers Atribut sestavení. Můžete sestavení, která má silný název být volána pouze plně důvěryhodné volající pokud používá sestavení AllowPartiallyTrustedCallers atribut. Vzorek pro uživatelský ovládací prvek rovněž ukazuje, jak použít Vyhodnocení Metoda. Na Vyhodnocení Metoda prohlašuje, že volající kód můžete použít kód, který volá na Vyhodnocení Metoda pro přístup k prostředku, který je chráněn oprávnění poptávka. Kód přístup i v případě, že volající jsou vyšší v prostředku Zásobník nemají uděleno oprávnění k přístupu k prostředku.

To uživatelský ovládací prvek umožňuje vybrat soubor pomocí dialogového okna Otevřít. Ovládací prvek v rozevíracím seznamu potom otevře textový soubor. Uživatelské rozhraní tohoto uživatele ovládací prvek obsahuje jedno textové pole a jeden seznam. V textovém poli zobrazí název soubor, který je vybrán a seznamu pole zobrazí obsah souboru vybrané.

Čtení názvu vybraného souboru z OpenFileDialog pole a číst soubor, FileIOPermission musí být uděleno oprávnění typu. Uživatelský ovládací prvek musí mít toto oprávnění poskytuje prostřednictvím jeho kód skupiny. Webové stránky, která volá ovládací prvek nepodporuje oprávnění.

Aby se zabránilo chůze zásobníku, který není úspěšná protože volající nemá požadovaný typ oprávnění FileIOPermission použít Vyhodnocení Metoda. Všimněte si, že Vyhodnocení Metoda můžete otevřít slabých míst zabezpečení, pokud Vyhodnocení Metoda se používá nesprávně nebo nevhodně. Proto je musíte použít Vyhodnocení Metoda buďte opatrní. A RevertAssert Metoda musí následovat Vyhodnocení Metoda co nejdříve po dokončení operace soubor.

Poznámka: A ujistěte se, že obsah souboru se zobrazí správně v v seznamu pole, vyberte pouze textové soubory pomocí tohoto uživatele ovládacího prvku.
  1. Spusťte aplikaci Visual Studio.NET, Microsoft Visual Studio 2005 nebo novější verzi aplikace Visual Studio.
  2. V Soubor příkazNovýa klepněte na tlačítko Projekt. Na Nový Projekt Zobrazí se dialogové okno.
  3. Ve skupinovém rámečku Typy projektů, klepněte na tlačítko Vizuální C# projekty.

    Poznámka: V aplikaci Visual Studio klepněte na tlačítko Visual C# ve skupinovém rámečkuTypy projektů.
  4. Ve skupinovém rámečku Šablony, klepněte na tlačítko Systém Windows Řídicí knihovna.
  5. V Název Typ poleUserControl.
  6. Klepněte na tlačítko OK.
  7. V okně aplikaci Solution Explorer klepněte pravým tlačítkem myšiUserControl1.csa klepněte na tlačítko Zobrazit kód. Zobrazí se soubor UserControl1.cs.
  8. Nahraďte existující kód následující kód:
    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. V aplikaci Solution Explorer klepněte pravým tlačítkem myšiAssemblyInfo.csa klepněte na tlačítko Zobrazit kód. Zobrazí se soubor AssemblyInfo.cs.
  10. Vyhledejte následující kód:
    [assembly: AssemblyVersion("1.0.*")]
    Tento kód nahraďte následující kód:
    [assembly: AssemblyVersion("1.0.0.0")]
  11. Vyhledejte následující kód:
    [assembly: AssemblyKeyFile("")]
    Tento kód nahraďte následující kód:
    [assembly: AssemblyKeyFile("c:\\snKey.snk")]
  12. V Sestavení nabídky, klepněte na tlačítko Sestavení Řešení.

Vytvoření kódu skupiny k přiřazení oprávnění pro sestavení

Upozornění Toto řešení může lépe počítače nebo sítě útoku uživatelů se zlými úmysly nebo škodlivému softwaru, například viry. Doporučujeme toto řešení nedoporučujeme, ale poskytujeme tyto informace takže můžete řešení implementovat vlastního uvážení. Pomocí této řešení na vlastní nebezpečí.

Určuje kód skupiny zda sestavení odpovídá definovaných správcem kritéria, které se nazývá jako podmínku členství. Pokud odpovídá shromáždění, kódová skupina uděluje sestavení sadu oprávnění, která byla spojena s daným kódem skupina.

Vytvořit skupinu kódu:
  1. Klepněte na tlačítko Spustit, přejděte na příkazNastavenía klepněte na tlačítko Ovládací panely. NaOvládací panely Zobrazí se okno.
  2. Poklepejte na položku Nástroje pro správu. NaNástroje pro správu Zobrazí se okno.
  3. V aplikaci Microsoft Visual Studio.NET 2002, poklepejte na položkuSpolečnosti Microsoft.Konfigurace rozhraní .NET Framework. Na .NET Konfigurace Framework Zobrazí se okno.

    Pro Microsoft Visual Studio.NET 2003, poklepejte na položku Společnosti Microsoft.Rozhraní .NET Framework 1.1 Konfigurace. Na .NET Configuration 1.1 okno Zobrazí se.

    Poklepejte na položku Microsoft Visual Studio 2005 nebo novější,Společnosti Microsoft.Konfigurace rozhraní .NET Framework 2.0. Na .NET Konfigurace Framework 2.0 Zobrazí se okno.
  4. V levém podokně rozbalte položku Zabezpečení Runtime Zásady, rozbalte položku Počítača potom rozbalte položku Kód Skupiny.
  5. Klepněte pravým tlačítkem myši All_Codea klepněte na tlačítkoNový. Zobrazí se Průvodce vytvoření skupiny kódu.
  6. Zkontrolujte, zda Vytvořit novou skupinu kódu je vybraný, typ MyUserControlCodeGroup vNázev pole a pak klepněte na tlačítko Další. NaVyberte typ podmínky Zobrazí se stránka.
  7. V Vyberte typ podmínky pro tento kód skupiny Klepněte na položku Silný název.
  8. Klepněte na tlačítko Import. Na Import silné Název sestavení Zobrazí se dialogové okno.
  9. Vyhledejte soubor UserControl.dll, který jste vytvořili v Vytvořit ovládací prvek uživatele systému Windows pomocí jazyka Microsoft Visual C#.NET, Microsoft Visual C# 2005 nebo novější"části a klepněte na tlačítko Otevřít.
  10. Klepněte na tlačítko Další. Na Přiřadit Sada oprávnění, kód skupiny Zobrazí se stránka.
  11. Klepněte na tlačítko Použít stávající sadu oprávnění, vyberteOprávnění FullTrust ze seznamu a klepněte na tlačítko Další. Na Dokončení Průvodce Zobrazí se stránka.
  12. Klepněte na tlačítko Dokončit Zavřete vytvořit kód Průvodce skupiny.

Vytvořit soubor HTML volat uživatele ovládacího prvku

Po vytvoření přiřadit oprávnění pro skupinu kódu montáž, je nutné vytvořit soubor HTML při volání uživatele ovládacího prvku z prohlížeč a musíte nastavit prostředí a ujistěte se, že uživatel řídí nazývá se úspěšně.
  1. Klepněte na tlačítko Spustit, klepněte na tlačítko Spustit, Typ Poznámkový bloka klepněte na tlačítkoOK.
  2. V programu Poznámkový blok zkopírujte následující kód:
    <OBJECT id="MyWinControl1" height="200" width="200" classid="http:UserControl.dll#UserControl.UserControl1" VIEWASTEXT>
        
    </OBJECT> 
  3. V kořenové složce aplikace Microsoft Internet Information Služba (IIS), uložte soubor jako CallUserControl.htm.
  4. Zkopírujte soubor UserControl.dll, který jste vytvořili v Vytvořit ovládací prvek uživatele systému Windows pomocí jazyka Microsoft Visual C#.NET, Microsoft Visual C# 2005 nebo novější"části do kořenové složky služby IIS složka.
  5. Spusťte aplikaci Internet Explorer.
  6. V Adresa Typ polehttp://localhost/CallUserControl.htma pak stiskněte klávesu. ZADEJTE. Na Otevřít Zobrazí se dialogové okno.
  7. Libovolný textový soubor vyhledejte a klepněte na tlačítko Otevřít. Text souboru se zobrazí v Pole se seznamem řízení na prohlížeči.

Odkazy

Další informace naleznete na následující společnosti Microsoft Webech Developer Network (MSDN):
Konfigurace kódu skupiny pomocí.NET Framework Configuration tool
http://msdn2.microsoft.com/en-us/library/eb8xw74a (vs.71) .aspx

Metoda CodeAccessPermission.Assert
http://msdn2.microsoft.com/en-us/library/System.Security.codeaccesspermission.Assert (vs.71) .aspx

.Sestavení .NET Framework a atribut AllowPartiallyTrustedCallers
http://msdn2.microsoft.com/en-us/library/aa302328.aspx

Třída AllowPartiallyTrustedCallersAttribute
http://msdn2.microsoft.com/en-us/library/System.Security.AllowPartiallyTrustedCallersAttribute (vs.71) .aspx

Důležité informace o zabezpečení sestavení
http://msdn2.microsoft.com/en-us/library/ab4eace3 (vs.71) .aspx

Kalhotky zabezpečení: silné názvy a zabezpečení v.NET Framework
http://msdn2.microsoft.com/en-us/library/aa302416.aspx

Vlastnosti

ID článku: 839300 - Poslední aktualizace: 22. května 2011 - Revize: 6.0
Informace v tomto článku jsou určeny pro produkt:
  • 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
Klíčová slova: 
kbhowtomaster kbhowto kblistbox kbfileio kbdll kbcontrol kbweb kbuser kbsecurity kbpolicy kbopenfile kbmt KB839300 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:839300

Dejte nám zpětnou vazbu

 

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