Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês
Esta documentação foi arquivada e não está sendo atualizada.

Classe AllowPartiallyTrustedCallersAttribute

Permite que os assemblies fortes seja chamado pelo código parcialmente confiável. Sem essa declaração, somente os chamadores totalmente confiável são capazes de usar esses conjuntos. Esta classe não pode ser herdada.

Namespace:  System.Security
Assembly:  mscorlib (em mscorlib.dll)

[ComVisibleAttribute(true)]
[AttributeUsageAttribute(AttributeTargets.Assembly, AllowMultiple = false, 
	Inherited = false)]
public sealed class AllowPartiallyTrustedCallersAttribute : Attribute

AllowPartiallyTrustedCallersAttribute só é efetivo quando aplicada por um assembly de nome forte no nível do assembly. Para obter mais informações sobre como aplicar atributos no nível do assembly, consulte Aplicando atributos.

Por padrão, um assembly de nome forte explicitamente não se aplica a este atributo no nível de assembly para permitir seu uso por código parcialmente confiável pode ser chamado somente por outros assemblies recebem confiança total pela diretiva de segurança.Essa restrição é imposta pelo colocando um LinkDemand para FullTrust em cada método público ou protegido em cada classe publicamente acessível no conjunto de módulos (assembly). Os assemblies que se destinam a ser chamado pelo código parcialmente confiável podem declarar seu intenção através do uso do AllowPartiallyTrustedCallersAttribute. O atributo é declarado no nível do assembly.Um exemplo da declaração em translation from VPE for Csharp é [assembly:AllowPartiallyTrustedCallers] e no Visual Basic é <assembly:AllowPartiallyTrustedCallers>.

Observação de cuidadoCuidado:

A presença desse atributo de nível de assembly impede o comportamento padrão de colocação FullTrust  LinkDemand verificações de segurança, tornando o assembly podem ser chamados de qualquer Outros assembly (parcialmente ou totalmente confiável).

Quando esse atributo estiver presente, todas sistema autônomo Outros verificações de segurança função conforme pretendido, incluindo quaisquer atributos de nível de classe ou método em nível de segurança declarativa que estão presentes.Blocos este atributo apenas o implícita totalmente confiável por solicitação do chamador.

Isso não é um atributo de segurança declarativa, mas um atributo comum (ela deriva de Attribute, não SecurityAttribute).

Para obter mais informações, consulte Usando bibliotecas de códigos parcialmente Confiável.

O exemplo a seguir mostra o uso do AllowPartiallyTrustedCallersAttribute classe.

// The following HTML code can be used to call the user control in this sample.////<HTML>//	<BODY>//		<OBJECT id="usercontrol" classid="usercontrol.dll#UserControl.UserControl1" width="800"//		height="300" style="font-size:12;">
//		</OBJECT>//		<p>//	</BODY>//</HTML>// To run this test control you must create a strong name key, snkey.snk, and // a code group that gives full trust to assemblies signed with snkey.snk.// The user control displays an OpenFileDialog box, then displays a text box containing the name of // the file selected and a list box that displays the contents of the file.  The selected file must // contain text in order for the control to display the data properly.// Caution  This sample demonstrates the use of the Assert method.  Calling Assert removes the // requirement that all code in the call chain must be granted permission to access the specified // resource, it can open up security vulnerabilities if used incorrectly or inappropriately. Therefore, // it should be used with great caution.  Assert should always be followed with a RevertAssert // command to restore the security settings.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;

// This strong name key is used to create a code group that gives permissions to this assembly.
[assembly: AssemblyKeyFile("snKey.snk")]
[assembly: AssemblyVersion("1.0.0.0")]

// The AllowPartiallyTrustedCallersAttribute requires the assembly to be signed with a strong name key.// This attribute is necessary since the control is called by either an intranet or Internet// Web page that should be running under restricted permissions.
[assembly:AllowPartiallyTrustedCallers]
namespace UserControl
{
	// The userControl1 displays an OpenFileDialog box, then displays a text box containing the name of // the file selected and a list box that displays the contents of the file.  The selected file must // contain text in order for the control to display the data properly.publicclass UserControl1 : System.Windows.Forms.UserControl
	{
		private System.Windows.Forms.TextBox textBox1;
		private System.Windows.Forms.ListBox listBox1;
		// Required designer variable.private System.ComponentModel.Container components = null;

              // Demand the zone requirement for the calling application.
              [ZoneIdentityPermission(SecurityAction.Demand, Zone = SecurityZone.Intranet)]
		public UserControl1()
		{
			// This call is required by the Windows.Forms Form Designer.
			InitializeComponent();

			// The OpenFileDialog box should not require any special permissions.
			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 user control should // have this permission granted through its code group; the Web page that calls the // control should not have this permission.  The Assert command prevents a stack walk // that would fail because the caller does not have the required FileIOPermission.  // The use of Assert can open up security vulnerabilities if used incorrectly or // inappropriately. Therefore, it should be used with great caution.// The Assert command should 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 filefor (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();
			}

		}

		// Clean up any resources being used.protectedoverridevoid 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>privatevoid 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(208, 112);
			this.textBox1.Name = "textBox1";
			this.textBox1.Size = new System.Drawing.Size(320, 20);
			this.textBox1.TabIndex = 0;
			this.textBox1.Text = "textBox1";
			this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
			// // listBox1// this.listBox1.Location = new System.Drawing.Point(200, 184);
			this.listBox1.Name = "listBox1";
			this.listBox1.Size = new System.Drawing.Size(336, 108);
			this.listBox1.TabIndex = 1;
			// // UserControl1// this.Controls.Add(this.listBox1);
			this.Controls.Add(this.textBox1);
			this.Name = "UserControl1";
			this.Size = new System.Drawing.Size(592, 400);
			this.Load += new System.EventHandler(this.UserControl1_Load);
			this.ResumeLayout(false);

		}
		#endregion

		privatevoid UserControl1_Load(object sender, System.EventArgs e)
		{
		
		}

		privatevoid textBox1_TextChanged(object sender, System.EventArgs e)
		{
		
		}


	}
}


System.Object
  System.Attribute
    System.Security.AllowPartiallyTrustedCallersAttribute

Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

.NET Framework

Compatível com: 3.5, 3.0, 2.0, 1.1, 1.0
Mostrar: