WPF-Sicherheit mit teilweiser VertrauenswürdigkeitWPF Partial Trust Security

Im Allgemeinen sollte der direkte Zugriff von Internetanwendungen auf wichtige Systemressourcen eingeschränkt werden, um böswillige Schäden zu vermeiden.In general, Internet applications should be restricted from having direct access to critical system resources, to prevent malicious damage. Standardmäßig HTMLHTML können und Client seitige Skriptsprachen nicht auf wichtige Systemressourcen zugreifen.By default, HTMLHTML and client-side scripting languages are not able to access critical system resources. Windows Presentation Foundation da vom Browser gehostete WPF-Anwendungen (WPF) über den Browser gestartet werden können, sollten Sie einen ähnlichen Satz von Einschränkungen einhalten.Because Windows Presentation Foundation (WPF) browser-hosted applications can be launched from the browser, they should conform to a similar set of restrictions. Um diese Einschränkungen zu erzwingen WPFWPF , stützt sich sowohl auf die Code Zugriffssicherheit ( ClickOnceClickOnce Code Access Security, CAS) als auch auf (siehe WPF Security Strategy-Platform Security).To enforce these restrictions, WPFWPF relies on both Code Access Security (CAS) and ClickOnceClickOnce (see WPF Security Strategy - Platform Security). Standardmäßig fordern von einem Browser gehostete Anwendungen den Berechtigungs Satz für Internet Zonen-CAS an, unabhängig davon, ob Sie über das Internet, das lokale Intranet oder den lokalen Computer gestartet werden.By default, browser-hosted applications request the Internet zone CAS set of permissions, irrespective of whether they are launched from the Internet, the local intranet, or the local computer. Für Anwendungen, die nicht mit dem vollständigen, sondern einem eingeschränkten Berechtigungssatz ausgeführt werden, wird formuliert, dass sie mit teilweiser Vertrauenswürdigkeit ausgeführt werden.Applications that run with anything less than the full set of permissions are said to be running with partial trust.

WPFWPFstellt eine Vielzahl von Unterstützung bereit, um sicherzustellen, dass so viele Funktionen wie möglich sicher bei teilweiser Vertrauenswürdigkeit verwendet werden können, und bietet zusätzliche Unterstützung für teilweise vertrauenswürdige Programmierung.provides a wide variety of support to ensure that as much functionality as possible can be used safely in partial trust, and along with CAS, provides additional support for partial trust programming.

Dieses Thema enthält folgende Abschnitte:This topic contains the following sections:

WPF-Funktionen für die Unterstützung von teilweiser VertrauenswürdigkeitWPF Feature Partial Trust Support

In der folgenden Tabelle sind die Funktionen von Windows Presentation Foundation (WPF) auf hoher Ebene aufgeführt, die innerhalb der Grenzen des Berechtigungs Satzes für die Internet Zone sicher zu verwenden sind.The following table lists the high-level features of Windows Presentation Foundation (WPF) that are safe to use within the limits of the Internet zone permission set.

Tabelle 1: WPF-Funktionen, die bei teilweiser Vertrauenswürdigkeit sicher sindTable 1: WPF Features that are Safe in Partial Trust

Bereich „Funktionen“Feature Area FeatureFeature
AllgemeinGeneral BrowserfensterBrowser Window

Zugriff auf UrsprungswebsiteSite of Origin Access

IsolatedStorage (beschränkt auf 512 KB)IsolatedStorage (512KB Limit)

UIAutomation-AnbieterUIAutomation Providers

BefehleCommanding

Eingabemethoden-Editoren (Input Method Editors, IMEs)Input Method Editors (IMEs)

Tablettstift und FreihandeingabenTablet Stylus and Ink

Simuliertes Drag & Drop mit Ereignissen für Mausaufzeichnung und BewegenSimulated Drag/Drop using Mouse Capture and Move Events

OpenFileDialogOpenFileDialog

XAML-Deserialisierung (über XamlReader.Load)XAML Deserialization (via XamlReader.Load)
WebintegrationWeb Integration Download-Dialogfeld des BrowsersBrowser Download Dialog

Vom Benutzer initiierte Navigation auf oberster EbeneTop-Level User-Initiated Navigation

mailto:linksmailto:links

Uniform Resource Identifier-ParameterUniform Resource Identifier Parameters

HTTPWebRequestHTTPWebRequest

In einem IFRAME gehosteter WPF-InhaltWPF Content Hosted in an IFRAME

Hosten von HTML-Seiten aus derselben Website mithilfe eines FramesHosting of Same-Site HTML Pages using Frame

Hosten von HTML-Seiten aus derselben Website mithilfe von WebBrowserHosting of Same Site HTML Pages using WebBrowser

Webdienste (ASMX)Web Services (ASMX)

Webdienste (über Windows Communication Foundation)Web Services (using Windows Communication Foundation)

SkripterstellungScripting

DokumentobjektmodellDocument Object Model
Visuelle ObjekteVisuals 2D und 3D2D and 3D

AnimationAnimation

Medien (Ursprungswebsite und domänenübergreifend)Media (Site Of Origin and Cross-Domain)

Imaging/Audio/VideoImaging/Audio/Video
LesenReading FlowDocumentsFlowDocuments

XPS-DokumenteXPS Documents

Eingebettete Schriftarten und SystemschriftartenEmbedded & System Fonts

CFF- und TrueType-SchriftartenCFF & TrueType Fonts
BearbeitenEditing RechtschreibprüfungSpell Checking

RichTextBoxRichTextBox

Unterstützung der Zwischenablage bei Nur-Text und FreihandPlaintext and Ink Clipboard Support

Vom Benutzer initiiertes EinfügenUser-Initiated Paste

Kopieren von markiertem InhaltCopying Selected Content
SteuerelementeControls Allgemeine SteuerelementeGeneral Controls

In dieser Tabelle werden WPFWPF die Features auf hoher Ebene behandelt.This table covers the WPFWPF features at a high level. Ausführlichere Informationen finden Sie in Windows Software Development Kit (SDK)Windows Software Development Kit (SDK) den Berechtigungen, die für die einzelnen Member in WPFWPFerforderlich sind.For more detailed information, the Windows Software Development Kit (SDK)Windows Software Development Kit (SDK) documents the permissions that are required by each member in WPFWPF. Zusätzlich gibt es für die folgenden Funktionen ausführlichere Informationen hinsichtlich des Ausführens bei teilweiser Vertrauenswürdigkeit, wozu auch spezielle Aspekte gehören.Additionally, the following features have more detailed information regarding partial trust execution, including special considerations.

In der folgenden Tabelle werden WPFWPF die Funktionen beschrieben, die nicht sicher innerhalb der Grenzen des Berechtigungs Satzes für die Internet Zone ausgeführt werden können.The following table outlines the WPFWPF features that are not safe to run within the limits of the Internet zone permission set.

Tabelle 2: WPF-Funktionen, die bei teilweiser Vertrauenswürdigkeit nicht sicher sindTable 2: WPF Features that are Not Safe in Partial Trust

Bereich „Funktionen“Feature Area FeatureFeature
AllgemeinGeneral Fenster (anwendungsdefinierte Fenster und Dialogfelder)Window (Application Defined Windows and Dialog Boxes)

SaveFileDialogSaveFileDialog

DateisystemFile System

Zugriff auf die RegistrierungRegistry Access

Drag & DropDrag and Drop

XAML-Serialisierung (über XamlWriter.Save)XAML Serialization (via XamlWriter.Save)

UIAutomation-ClientsUIAutomation Clients

Zugriff auf das Quellcodefenster (HwndHost)Source Window Access (HwndHost)

Vollständige SprachunterstützungFull Speech Support

Windows Forms-InteroperabilitätWindows Forms Interoperability
Visuelle ObjekteVisuals BitmapeffekteBitmap Effects

BildcodierungImage Encoding
BearbeitenEditing Rich-Text-Format-ZwischenablageRich Text Format Clipboard

Vollständige XAML-UnterstützungFull XAML support

Programmieren für teilweise VertrauenswürdigkeitPartial Trust Programming

Bei XBAPXBAP -Anwendungen hat Code, der den Standard Berechtigungs Satz überschreitet, abhängig von der Sicherheitszone ein anderes Verhalten.For XBAPXBAP applications, code that exceeds the default permission set will have different behavior depending on the security zone. In einigen Fällen erhält der Benutzer bei der Installation eine Warnung.In some cases, the user will receive a warning when they attempt to install it. Der Benutzer kann auswählen, ob die Installation fortgesetzt oder abgebrochen werden soll.The user can choose to continue or cancel the installation. In der folgenden Tabelle werden das Verhalten der Anwendung für jede Sicherheitszone und die erforderlichen Schritte für die volle Vertrauenswürdigkeit der Anwendung beschrieben.The following table describes the behavior of the application for each security zone and what you have to do for the application to receive full trust.

SicherheitszoneSecurity Zone VerhaltenBehavior Erhalten der vollen VertrauenswürdigkeitGetting Full Trust
Lokaler ComputerLocal computer Automatisch volle VertrauenswürdigkeitAutomatic full trust Es ist keine Aktion erforderlich.No action is needed.
Intranet und vertrauenswürdige WebsitesIntranet and trusted sites Eingabeaufforderung für volle VertrauenswürdigkeitPrompt for full trust Signieren Sie die XBAP mit einem Zertifikat, damit der Benutzer die Quelle in der Eingabeaufforderung sieht.Sign the XBAP with a certificate so that the user sees the source in the prompt.
InternetInternet Schlägt fehl mit „Vertrauenswürdigkeit nicht gewährt“Fails with "Trust Not Granted" Signieren Sie die XBAP mit einem Zertifikat.Sign the XBAP with a certificate.

Hinweis

Das in der vorherigen Tabelle beschriebene Verhalten gilt für vollständig vertrauenswürdige XBAPs, die nicht dem ClickOnce-Modell für vertrauenswürdige Bereitstellung entsprechen.The behavior described in the previous table is for full trust XBAPs that do not follow the ClickOnce Trusted Deployment model.

Bei Code, der die zulässigen Berechtigungen überschreitet, handelt es sich normalerweise um gemeinsamen Code, der von eigenständigen und im Browser gehosteten Anwendungen gemeinsam verwendet wird.In general, code that may exceed the allowed permissions is likely to be common code that is shared between both standalone and browser-hosted applications. CAS und WPFWPF bieten mehrere Verfahren für die Verwaltung dieses Szenarios.CAS and WPFWPF offer several techniques for managing this scenario.

Erkennen von Berechtigungen mit CASDetecting Permissions Using CAS

In einigen Situationen kann der freigegebene Code in Bibliotheksassemblys sowohl von eigenständigen Anwendungen als auch XBAPsXBAPsvon verwendet werden.In some situations, it is possible for shared code in library assemblies to be used by both standalone applications and XBAPsXBAPs. In diesen Fällen werden im Code möglicherweise Funktionen ausgeführt, die mehr Berechtigungen erfordern, als der Berechtigungssatz zulässt, der der Anwendung zugewiesen ist.In these cases, code may execute functionality that could require more permissions than the application's awarded permission set allows. Die Anwendung kann erkennen, ob Sie über eine bestimmte Berechtigung verfügt, indem Sie die Microsoft .NET Framework-Sicherheit verwendet.Your application can detect whether or not it has a certain permission by using Microsoft .NET Framework security. Insbesondere kann überprüft werden, ob Sie über eine bestimmte Berechtigung verfügt, indem Demand die-Methode für die Instanz der gewünschten Berechtigung aufgerufen wird.Specifically, it can test whether it has a specific permission by calling the Demand method on the instance of the desired permission. Dies wird im folgenden Beispiel gezeigt, das Code enthält, der überprüft, ob er eine Datei auf dem lokalen Datenträger speichern darf:This is shown in the following example, which has code that queries for whether it has the ability to save a file to the local disk:

using System.IO;
using System.IO.IsolatedStorage;
using System.Security;
using System.Security.Permissions;
using System.Windows;

namespace SDKSample
{
    public class FileHandling
    {
        public void Save()
        {
            if (IsPermissionGranted(new FileIOPermission(FileIOPermissionAccess.Write, @"c:\newfile.txt")))
            {
                // Write to local disk
                using (FileStream stream = File.Create(@"c:\newfile.txt"))
                using (StreamWriter writer = new StreamWriter(stream))
                {
                    writer.WriteLine("I can write to local disk.");
                }
            }
            else
            {
                MessageBox.Show("I can't write to local disk.");
            }
        }

        // Detect whether or not this application has the requested permission
        bool IsPermissionGranted(CodeAccessPermission requestedPermission)
        {
            try
            {
                // Try and get this permission
                requestedPermission.Demand();
                return true;
            }
            catch
            {
                return false;
            }
        }


Imports System.IO
Imports System.IO.IsolatedStorage
Imports System.Security
Imports System.Security.Permissions
Imports System.Windows

Namespace SDKSample
    Public Class FileHandling
        Public Sub Save()
            If IsPermissionGranted(New FileIOPermission(FileIOPermissionAccess.Write, "c:\newfile.txt")) Then
                ' Write to local disk
                Using stream As FileStream = File.Create("c:\newfile.txt")
                Using writer As New StreamWriter(stream)
                    writer.WriteLine("I can write to local disk.")
                End Using
                End Using
            Else
                MessageBox.Show("I can't write to local disk.")
            End If
        End Sub

        ' Detect whether or not this application has the requested permission
        Private Function IsPermissionGranted(ByVal requestedPermission As CodeAccessPermission) As Boolean
            Try
                ' Try and get this permission
                requestedPermission.Demand()
                Return True
            Catch
                Return False
            End Try
        End Function

    }
}
    End Class
End Namespace

Wenn eine Anwendung nicht über die gewünschte Berechtigung verfügt, löst der- Demand Aufrufvorgang eine Sicherheits Ausnahme aus.If an application does not have the desired permission, the call to Demand will throw a security exception. Andernfalls wurde die Berechtigung erteilt.Otherwise, the permission has been granted. IsPermissionGrantedkapselt dieses Verhalten und gibt true oder false nach Bedarf zurück.IsPermissionGranted encapsulates this behavior and returns true or false as appropriate.

Sinnvolle Herabstufung der FunktionalitätGraceful Degradation of Functionality

Für Code, der aus verschiedenen Zonen ausgeführt werden, ist es sinnvoll, erkennen zu können, ob er die Berechtigung für seine auszuführenden Schritte hat.Being able to detect whether code has the permission to do what it needs to do is interesting for code that can be executed from different zones. Während das Erkennen der Zone eine Geschichte ist, ist es weitaus besser, nach Möglichkeit eine Alternative für den Benutzer bereitzustellen.While detecting the zone is one thing, it is far better to provide an alternative for the user, if possible. Beispielsweise ermöglicht eine Anwendung mit voller Vertrauenswürdigkeit Benutzern normalerweise, Dateien in beliebigen Speicherorten zu erstellen, während eine Anwendung mit teilweiser Vertrauenswürdigkeit Dateien nur in isoliertem Speicher erstellen kann.For example, a full trust application typically enables users to create files anywhere they want, while a partial trust application can only create files in isolated storage. Wenn der Code zum Erstellen einer Datei in einer Assembly vorhanden ist, die sowohl von Anwendungen mit voller Vertrauenswürdigkeit (eigenständige Anwendungen) als auch von Anwendungen mit teilweiser Vertrauenswürdigkeit (im Browser gehostete Anwendungen) gemeinsam genutzt wird, und beide Anwendungen es Benutzern ermöglichen sollen, Dateien zu erstellen, muss der freigegebene Code erkennen, ob er mit voller oder teilweiser Vertrauenswürdigkeit ausgeführt wird, bevor eine Datei am entsprechenden Speicherort erstellt wird.If the code to create a file exists in an assembly that is shared by both full trust (standalone) applications and partial trust (browser-hosted) applications, and both applications want users to be able to create files, the shared code should detect whether it is running in partial or full trust before creating a file in the appropriate location. Im folgenden Code werden beide Fälle veranschaulicht.The following code demonstrates both.

using System.IO;
using System.IO.IsolatedStorage;
using System.Security;
using System.Security.Permissions;
using System.Windows;

namespace SDKSample
{
    public class FileHandlingGraceful
    {
        public void Save()
        {
            if (IsPermissionGranted(new FileIOPermission(FileIOPermissionAccess.Write, @"c:\newfile.txt")))
            {
                // Write to local disk
                using (FileStream stream = File.Create(@"c:\newfile.txt"))
                using (StreamWriter writer = new StreamWriter(stream))
                {
                    writer.WriteLine("I can write to local disk.");
                }
            }
            else
            {
                // Persist application-scope property to 
                // isolated storage
                IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication();
                using (IsolatedStorageFileStream stream = 
                    new IsolatedStorageFileStream("newfile.txt", FileMode.Create, storage))
                using (StreamWriter writer = new StreamWriter(stream))
                {
                    writer.WriteLine("I can write to Isolated Storage");
                }
            }
        }

        // Detect whether or not this application has the requested permission
        bool IsPermissionGranted(CodeAccessPermission requestedPermission)
        {
            try
            {
                // Try and get this permission
                requestedPermission.Demand();
                return true;
            }
            catch
            {
                return false;
            }
        }


Imports System.IO
Imports System.IO.IsolatedStorage
Imports System.Security
Imports System.Security.Permissions
Imports System.Windows

Namespace SDKSample
    Public Class FileHandlingGraceful
        Public Sub Save()
            If IsPermissionGranted(New FileIOPermission(FileIOPermissionAccess.Write, "c:\newfile.txt")) Then
                ' Write to local disk
                Using stream As FileStream = File.Create("c:\newfile.txt")
                Using writer As New StreamWriter(stream)
                    writer.WriteLine("I can write to local disk.")
                End Using
                End Using
            Else
                ' Persist application-scope property to 
                ' isolated storage
                Dim storage As IsolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication()
                Using stream As New IsolatedStorageFileStream("newfile.txt", FileMode.Create, storage)
                Using writer As New StreamWriter(stream)
                    writer.WriteLine("I can write to Isolated Storage")
                End Using
                End Using
            End If
        End Sub

        ' Detect whether or not this application has the requested permission
        Private Function IsPermissionGranted(ByVal requestedPermission As CodeAccessPermission) As Boolean
            Try
                ' Try and get this permission
                requestedPermission.Demand()
                Return True
            Catch
                Return False
            End Try
        End Function

    }
}
    End Class
End Namespace

In vielen Fällen sollte es Ihnen möglich sein, eine Alternative zu teilweiser Vertrauenswürdigkeit zu finden.In many cases, you should be able to find a partial trust alternative.

In einer kontrollierten Umgebung (z. b. in einem Intranet) können benutzerdefinierte verwaltete Frameworks über die Client Globaler Assemblycache (GAC)global assembly cache (GAC)Basis in der installiert werden.In a controlled environment, such as an intranet, custom managed frameworks can be installed across the client base into the Globaler Assemblycache (GAC)global assembly cache (GAC). Diese Bibliotheken können Code ausführen, der volle Vertrauenswürdigkeit erfordert, und von Anwendungen, denen nur teilweise Vertrauenswürdigkeit unterstützt AllowPartiallyTrustedCallersAttribute wird, auf Sie verwiesen wird (Weitere Informationen finden Sie unter Sicherheit und WPF-Sicherheitsstrategie-Plattformsicherheit).These libraries can execute code that requires full trust, and be referenced from applications that are only allowed partial trust by using AllowPartiallyTrustedCallersAttribute (for more information, see Security and WPF Security Strategy - Platform Security).

BrowserhosterkennungBrowser Host Detection

Die Verwendung von CAS zum Überprüfen von Berechtigungen ist ein geeignetes Verfahren, wenn Sie eine Berechtigungs Basis überprüfen müssen.Using CAS to check for permissions is a suitable technique when you need to check on a per-permission basis. Allerdings ist für dieses Verfahren das Abfangen von Ausnahmen als Teil der normalen Verarbeitung erforderlich, was grundsätzlich nicht empfehlenswert ist und Leistungsprobleme verursachen kann.Although, this technique depends on catching exceptions as a part of normal processing, which is not recommended in general and can have performance issues. Stattdessen können Sie die XAML-Browseranwendung (XBAP)XAML browser application (XBAP) BrowserInteropHelper.IsBrowserHosted -Eigenschaft verwenden, die für XAML-Browseranwendungen (XAML browser applications; XBAPs)XAML browser applications (XBAPs)den Wert true zurückgibt, wenn Sie nur innerhalb der Internet Zonen Sandbox ausgeführt wird.Instead, if your XAML-Browseranwendung (XBAP)XAML browser application (XBAP) only runs within the Internet zone sandbox, you can use the BrowserInteropHelper.IsBrowserHosted property, which returns true for XAML-Browseranwendungen (XAML browser applications; XBAPs)XAML browser applications (XBAPs).

Hinweis

IsBrowserHostedunterscheidet nur, ob eine Anwendung in einem Browser ausgeführt wird, und nicht, mit welchem Berechtigungs Satz eine Anwendung ausgeführt wird.IsBrowserHosted only distinguishes whether an application is running in a browser, not which set of permissions an application is running with.

Verwalten von BerechtigungenManaging Permissions

Standardmäßig wird XBAPsXBAPs mit teilweiser Vertrauenswürdigkeit ausgeführt (standardmäßiger Berechtigungs Satz für die Internet Zone).By default, XBAPsXBAPs run with partial trust (default Internet zone permission set). Je nach Anforderungen der Anwendung ist es jedoch möglich, den Standardberechtigungssatz durch einen anderen Berechtigungssatz zu ersetzen.However, depending on the requirements of the application, it is possible to change the set of permissions from the default. Wenn z. b. XBAPsXBAPs ein aus einem lokalen Intranet gestartet wird, kann ein erhöhter Berechtigungs Satz genutzt werden, der in der folgenden Tabelle aufgeführt ist.For example, if an XBAPsXBAPs is launched from a local intranet, it can take advantage of an increased permission set, which is shown in the following table.

Tabelle 3: LocalIntranet-und Internet BerechtigungenTable 3: LocalIntranet and Internet Permissions

BerechtigungPermission AttributAttribute LocalIntranetLocalIntranet InternetInternet
DNSDNS Zugriff auf DNS-ServerAccess DNS servers JaYes NeinNo
UmgebungsvariablenEnvironment Variables LesenRead JaYes NeinNo
DateidialogfelderFile Dialogs ÖffnenOpen JaYes JaYes
DateidialogfelderFile Dialogs UneingeschränktUnrestricted JaYes NeinNo
Isolierte SpeicherungIsolated Storage Assemblyisolation durch BenutzerAssembly isolation by user JaYes NeinNo
Isolierte SpeicherungIsolated Storage Unbekannte isolationUnknown isolation JaYes JaYes
Isolierte SpeicherungIsolated Storage Unbegrenztes BenutzerkontingentUnlimited user quota JaYes NeinNo
MedienMedia Sicherheit für Audio, Video und BilderSafe audio, video, and images JaYes JaYes
DruckenPrinting StandarddruckDefault printing JaYes NeinNo
DruckenPrinting Sicheres DruckenSafe printing JaYes JaYes
SpiegelungReflection AusgabeEmit JaYes NeinNo
SicherheitSecurity Ausführen von verwaltetem CodeManaged code execution JaYes JaYes
SicherheitSecurity Bestätigen von erteilten BerechtigungenAssert granted permissions JaYes NeinNo
BenutzeroberflächeUser Interface UneingeschränktUnrestricted JaYes NeinNo
BenutzeroberflächeUser Interface Sichere Fenster der obersten EbeneSafe top level windows JaYes JaYes
BenutzeroberflächeUser Interface Eigene ZwischenablageOwn Clipboard JaYes JaYes
WebbrowserWeb Browser Sichere Frame-Navigation zu HTMLSafe frame navigation to HTML JaYes JaYes

Hinweis

Ausschneiden und Einfügen ist bei teilweiser Vertrauenswürdigkeit nur bei Ausführen durch den Benutzer zulässig.Cut and Paste is only allowed in partial trust when user initiated.

Müssen Sie Berechtigungen erhöhen, müssen Sie die Projekteinstellungen und das ClickOnce-Anwendungsmanifest ändern.If you need to increase permissions, you need to change the project settings and the ClickOnce application manifest. Weitere Informationen finden Sie unter Übersicht über WPF-XAML-Browseranwendungen.For more information, see WPF XAML Browser Applications Overview. Möglicherweise sind auch die folgenden Dokumente hilfreich.The following documents may also be helpful.

Wenn Ihr XBAPXBAP volle Vertrauenswürdigkeit erfordert, können Sie dieselben Tools verwenden, um die angeforderten Berechtigungen zu erhöhen.If your XBAPXBAP requires full trust, you can use the same tools to increase the requested permissions. Eine XBAPXBAP erhält zwar nur dann volle Vertrauenswürdigkeit, wenn Sie auf dem lokalen Computer, im Intranet oder über eine URL, die in den vertrauenswürdigen oder zulässigen Websites des Browsers aufgeführt ist, installiert und gestartet wird.Although an XBAPXBAP will only receive full trust if it is installed on and launched from the local computer, the intranet, or from a URL that is listed in the browser's trusted or allowed sites. Wird die Anwendung aus dem Intranet oder einer vertrauenswürdigen Website installiert, wird der Benutzer durch die Standard-ClickOnce-Eingabeaufforderung über die erhöhten Berechtigungen informiert.If the application is installed from the intranet or a trusted site, the user will receive the standard ClickOnce prompt notifying them of the elevated permissions. Der Benutzer kann auswählen, ob die Installation fortgesetzt oder abgebrochen werden soll.The user can choose to continue or cancel the installation.

Alternativ können Sie das ClickOnce-Modell für vertrauenswürdige Bereitstellung für eine Bereitstellung mit voller Vertrauenswürdigkeit aus einer beliebigen Sicherheitszone verwenden.Alternatively, you can use the ClickOnce Trusted Deployment model for full trust deployment from any security zone. Weitere Informationen finden Sie unter Übersicht über die Bereitstellung vertrauenswürdiger Anwendungen und Sicherheit.For more information, see Trusted Application Deployment Overview and Security.

Siehe auchSee also