Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

AllowPartiallyTrustedCallersAttribute-Klasse

 

Veröffentlicht: Oktober 2016

Ermöglicht es, eine Assembly über teilweise vertrauenswürdigen Code aufzurufen. Ohne diese Deklaration können nur vollständig vertrauenswürdige Aufrufer solche Assemblys verwenden. Diese Klasse kann nicht vererbt werden.

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

System.Object
  System.Attribute
    System.Security.AllowPartiallyTrustedCallersAttribute

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

NameBeschreibung
System_CAPS_pubmethodAllowPartiallyTrustedCallersAttribute()

Initialisiert eine neue Instanz der AllowPartiallyTrustedCallersAttribute-Klasse.

NameBeschreibung
System_CAPS_pubpropertyPartialTrustVisibilityLevel

Ruft ab oder legt die standardmäßige teilweise vertrauenswürdige Sichtbarkeit für Code, die mit dem AllowPartiallyTrustedCallersAttribute -Attribut (APTCA).

System_CAPS_pubpropertyTypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.(Geerbt von „Attribute“.)

NameBeschreibung
System_CAPS_pubmethodEquals(Object)

Diese API unterstützt die Produkt Infrastruktur und sollte nicht direkt aus dem Code verwendet werden. Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.(Geerbt von „Attribute“.)

System_CAPS_pubmethodGetHashCode()

Gibt den Hashcode für diese Instanz zurück.(Geerbt von „Attribute“.)

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_pubmethodIsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.(Geerbt von „Attribute“.)

System_CAPS_pubmethodMatch(Object)

Ruft beim Überschreiben in einer abgeleiteten Klasse gibt einen Wert, der angibt, ob diese Instanz gleich ein angegebenen Objekt ist.(Geerbt von „Attribute“.)

System_CAPS_pubmethodToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von „Object“.)

NameBeschreibung
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.(Geerbt von „Attribute“.)

System_CAPS_noteHinweis

Die .NET Framework 4 führt neue Sicherheitsregeln, die Auswirkung auf die Funktionsweise der AllowPartiallyTrustedCallersAttribute Attribut (finden Sie unter Security-Transparent Code, Level 2). In der .NET Framework 4, allen Code standardmäßig sicherheitstransparent, d. h. teilweise vertrauenswürdig. Sie können jedoch einzelne Typen und Member ihnen andere Transparenzattribute zuzuweisen versehen. Für diese und andere Änderungen der Sicherheit finden Sie unter Änderungen der Sicherheit in .NET Framework.

.NET Framework, Version 2.0 ()-Assemblys müssen mit starkem Namen sein für die effektive Verwendung der AllowPartiallyTrustedCallersAttribute -Attribut (APTCA)..NET Framework 4 ()-Assemblys müssen nicht mit starkem Namen für das APTCA-Attribut wirksam werden, und sie können transparenten, sicherheitskritischen und Sicherheit sicherheitsgeschützt Code enthalten. Weitere Informationen zum Anwenden von Attributen auf Assemblyebene finden Sie unter Anwenden von Attributen.

Standardmäßig können Sie, wenn eine mit starkem Namen, Assembly gilt dieses Attribut auf Assemblyebene nicht explizit, kann es nur von anderen Assemblys, die volle Vertrauenswürdigkeit gewährt wird aufgerufen. Diese Einschränkung wird erzwungen, indem Sie platzieren einen LinkDemand für FullTrust in jede öffentliche oder geschützte Methode jeder öffentlich zugänglichen Klasse in der Assembly. Assemblys, die von teilweise vertrauenswürdigem Code aufgerufen werden, können ihre Absicht durch die Verwendung von deklarieren AllowPartiallyTrustedCallersAttribute. Ein Beispiel für die Deklaration in c# ist [assembly:AllowPartiallyTrustedCallers]; ein Beispiel in Visual Basic ist <assembly:AllowPartiallyTrustedCallers>.

System_CAPS_cautionAchtung

Das Vorhandensein dieses Attribut auf Assemblyebene wird verhindert, dass das Standardverhalten des platzieren FullTrustLinkDemand Sicherheit überprüft und macht die Assembly von einer anderen Assembly aus (vollständig oder teilweise vertrauenswürdigem) aufgerufen werden kann.

Wenn das APTCA-Attribut vorhanden ist, überprüft alle anderen Sicherheit Funktion wie beabsichtigt, einschließlich aller Klassen- oder Methodenebene deklarative Sicherheit-Attribute, die vorhanden sind. Dieses Attribut wird nur die implizite vollständig vertrauenswürdiger Aufrufer Anforderung blockiert.

Dies ist kein deklaratives Sicherheitsattribut, sondern ein reguläres Attribut (es stammt von System.Attribute, nicht von System.Security.Permissions.SecurityAttribute).

Weitere Informationen finden Sie unter Using Libraries from Partially Trusted Code.

Im folgenden Beispiel wird die Verwendung der AllowPartiallyTrustedCallersAttribute-Klasse veranschaulicht.

// 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.
	public class 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 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();
			}

		}

		// Clean up any resources being used.
		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(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

		private void UserControl1_Load(object sender, System.EventArgs e)
		{

		}

		private void textBox1_TextChanged(object sender, System.EventArgs e)
		{

		}


	}
}

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 5.0
Windows Phone Silverlight
Verfügbar seit 8.0
Windows Phone
Verfügbar seit 8.1

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: