IApplicationTrustManager Rozhraní
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje, zda má být aplikace spuštěna a jaká sada oprávnění by jí měla být udělena.
public interface class IApplicationTrustManager : System::Security::ISecurityEncodable
[System.Runtime.InteropServices.ComVisible(true)]
public interface IApplicationTrustManager : System.Security.ISecurityEncodable
[<System.Runtime.InteropServices.ComVisible(true)>]
type IApplicationTrustManager = interface
interface ISecurityEncodable
Public Interface IApplicationTrustManager
Implements ISecurityEncodable
- Atributy
- Implementuje
Příklady
Následující příklad ukazuje jednoduchou implementaci .IApplicationTrustManager
// To use the custom trust manager MyTrustManager, compile it into CustomTrustManager.dll,
// place that assembly in the GAC, and put the following elements in
// an ApplicationTrust.config file in the config folder in the Microsoft .NET framework
// installation folder.
//<?xml version="1.0" encoding="utf-8" ?>
// <ApplicationEntries />
// <IApplicationTrustManager class="MyNamespace.MyTrustManager, CustomTrustManager, Version=1.0.0.3, Culture=neutral, PublicKeyToken=5659fc598c2a503e"/>
using System;
using System.Security;
using System.Security.Policy;
using System.Windows.Forms;
namespace MyNamespace
{
public class MyTrustManager : IApplicationTrustManager
{
public ApplicationTrust DetermineApplicationTrust(ActivationContext appContext, TrustManagerContext context)
{
ApplicationTrust trust = new ApplicationTrust(appContext.Identity);
trust.IsApplicationTrustedToRun = false;
ApplicationSecurityInfo asi = new ApplicationSecurityInfo(appContext);
trust.DefaultGrantSet = new PolicyStatement(asi.DefaultRequestSet, PolicyStatementAttribute.Nothing);
if (context.UIContext == TrustManagerUIContext.Run)
{
string message = "Do you want to run " + asi.ApplicationId.Name + " ?";
string caption = "MyTrustManager";
MessageBoxButtons buttons = MessageBoxButtons.YesNo;
DialogResult result;
// Displays the MessageBox.
result = MessageBox.Show(message, caption, buttons);
if (result == DialogResult.Yes)
{
trust.IsApplicationTrustedToRun = true;
if (context != null)
trust.Persist = context.Persist;
else
trust.Persist = false;
}
}
return trust;
}
public SecurityElement ToXml()
{
SecurityElement se = new SecurityElement("IApplicationTrustManager");
se.AddAttribute("class", typeof(MyTrustManager).AssemblyQualifiedName);
return se;
}
public void FromXml(SecurityElement se)
{
if (se.Tag != "IApplicationTrustManager" || (string)se.Attributes["class"] != typeof(MyTrustManager).AssemblyQualifiedName)
throw new ArgumentException("Invalid tag");
}
}
}
' To use the custom trust manager MyTrustManager, compile it into CustomTrustManager.dll,
' place that assembly in the GAC, and put the following elements in
' an ApplicationTrust.config file in the config folder in the Microsoft .NET framework
' installation folder.
'<?xml version="1.0" encoding="utf-8" ?>
' <ApplicationEntries />
' <IApplicationTrustManager class="MyNamespace.MyTrustManager, CustomTrustManager, Version=1.0.0.3, Culture=neutral, PublicKeyToken=5659fc598c2a503e"/>
Imports System.Security
Imports System.Security.Policy
Imports System.Windows.Forms
Public Class MyTrustManager
Implements IApplicationTrustManager
Public Function DetermineApplicationTrust(ByVal appContext As ActivationContext, ByVal context As TrustManagerContext) As ApplicationTrust Implements IApplicationTrustManager.DetermineApplicationTrust
Dim trust As New ApplicationTrust(appContext.Identity)
trust.IsApplicationTrustedToRun = False
Dim asi As New ApplicationSecurityInfo(appContext)
trust.DefaultGrantSet = New PolicyStatement(asi.DefaultRequestSet, _
PolicyStatementAttribute.Nothing)
If context.UIContext = TrustManagerUIContext.Run Then
Dim message As String = "Do you want to run " + asi.ApplicationId.Name + " ?"
Dim caption As String = "MyTrustManager"
Dim buttons As MessageBoxButtons = MessageBoxButtons.YesNo
Dim result As DialogResult
' Displays the MessageBox.
result = MessageBox.Show(message, caption, buttons)
If result = DialogResult.Yes Then
trust.IsApplicationTrustedToRun = True
If Not (context Is Nothing) Then
trust.Persist = context.Persist
Else
trust.Persist = False
End If
End If
End If
Return trust
End Function 'DetermineApplicationTrust
Public Function ToXml() As SecurityElement Implements IApplicationTrustManager.ToXml
Dim se As New SecurityElement("IApplicationTrustManager")
se.AddAttribute("class", GetType(MyTrustManager).AssemblyQualifiedName)
Return se
End Function 'ToXml
Public Sub FromXml(ByVal se As SecurityElement) Implements IApplicationTrustManager.FromXml
If se.Tag <> "IApplicationTrustManager" OrElse _
CStr(se.Attributes("class")) <> GetType(MyTrustManager).AssemblyQualifiedName Then
Throw New ArgumentException("Invalid tag")
End If
End Sub
End Class
Poznámky
Správci důvěryhodnosti IApplicationTrustManager musí rozhraní implementovat. Hostitel volá metodu IApplicationTrustManager.DetermineApplicationTrust k určení, zda má být aplikace spuštěna a jaká oprávnění by měla být udělena aplikaci.
V rozhraní .NET Framework 4 a novějších verzích existuje pouze jeden správce důvěryhodnosti IApplicationTrustManager , kterým může být vlastní implementace rozhraní. Výchozí implementace správce důvěryhodnosti vyzve uživatele k oprávnění k instalaci aplikace a ke zvýšení oprávnění udělených aplikaci. Jiné implementace správce důvěryhodnosti můžou poskytovat různá uživatelská prostředí. Implementace může například zkontrolovat seznam důvěryhodných aplikací v podnikovém seznamu místo toho, aby se uživateli zobrazila výzva k zadání těchto informací.
Metody
DetermineApplicationTrust(ActivationContext, TrustManagerContext) |
Určuje, zda má být aplikace spuštěna a jaká sada oprávnění by jí měla být udělena. |
FromXml(SecurityElement) |
Rekonstruuje objekt zabezpečení se zadaným stavem z kódování XML. (Zděděno od ISecurityEncodable) |
ToXml() |
Vytvoří kódování XML objektu zabezpečení a jeho aktuálního stavu. (Zděděno od ISecurityEncodable) |