IApplicationTrustManager.DetermineApplicationTrust Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет, должно ли выполняться приложение и какой набор разрешений должен быть предоставлен приложению.
public:
System::Security::Policy::ApplicationTrust ^ DetermineApplicationTrust(ActivationContext ^ activationContext, System::Security::Policy::TrustManagerContext ^ context);
public System.Security.Policy.ApplicationTrust DetermineApplicationTrust (ActivationContext activationContext, System.Security.Policy.TrustManagerContext context);
abstract member DetermineApplicationTrust : ActivationContext * System.Security.Policy.TrustManagerContext -> System.Security.Policy.ApplicationTrust
Public Function DetermineApplicationTrust (activationContext As ActivationContext, context As TrustManagerContext) As ApplicationTrust
Параметры
- activationContext
- ActivationContext
Контекст активации для приложения.
- context
- TrustManagerContext
Контекст диспетчера доверия для приложения.
Возвращаемое значение
Объект, содержащий решения по обеспечению безопасности приложения.
Примеры
В следующем примере показана реализация метода для пользовательского DetermineApplicationTrust диспетчера доверия. Этот пример кода является частью более крупного примера, предоставленного 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 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
Комментарии
Метод DetermineApplicationTrust вызывается узлом, чтобы определить, следует ли выполнять приложение и какой набор разрешений ему следует предоставить. DetermineApplicationTrustApplicationTrust возвращает объект со свойством DefaultGrantSet , содержащим набор разрешений, представляющий разрешения, предоставляемые каждой сборке, выполняемой в контексте приложения. Предоставленные разрешения не применяются к сборкам в глобальном кэше сборок. Объект ApplicationTrust также имеет IsApplicationTrustedToRun свойство, которое задает диспетчер доверия, чтобы указать, должно ли приложение быть доверенным. Если диспетчер доверия указывает, что приложение может быть доверенным, узел активирует приложение и предоставляет его сборкам набор разрешений, предоставленных в ApplicationTrust коллекции.