76 lines
3.8 KiB
C#
76 lines
3.8 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace System.Security.Policy
|
|
{
|
|
/// <summary>Manages trust decisions for manifest activated applications. </summary>
|
|
// Token: 0x0200057D RID: 1405
|
|
[ComVisible(true)]
|
|
public static class ApplicationSecurityManager
|
|
{
|
|
/// <summary>Gets or sets the current application trust manager.</summary>
|
|
/// <returns>An <see cref="T:System.Security.Policy.IApplicationTrustManager" /> that represents the current trust manager.</returns>
|
|
/// <exception cref="T:System.Security.Policy.PolicyException">The policy on this application does not have a trust manager.</exception>
|
|
// Token: 0x17000A13 RID: 2579
|
|
// (get) Token: 0x06003359 RID: 13145 RVA: 0x000B0764 File Offset: 0x000AE964
|
|
public static IApplicationTrustManager ApplicationTrustManager
|
|
{
|
|
get
|
|
{
|
|
if (ApplicationSecurityManager._appTrustManager == null)
|
|
{
|
|
ApplicationSecurityManager._appTrustManager = new MonoTrustManager();
|
|
}
|
|
return ApplicationSecurityManager._appTrustManager;
|
|
}
|
|
}
|
|
|
|
/// <summary>Gets an application trust collection that contains the cached trust decisions for the user.</summary>
|
|
/// <returns>An <see cref="T:System.Security.Policy.ApplicationTrustCollection" /> that contains the cached trust decisions for the user.</returns>
|
|
// Token: 0x17000A14 RID: 2580
|
|
// (get) Token: 0x0600335A RID: 13146 RVA: 0x000B0780 File Offset: 0x000AE980
|
|
public static ApplicationTrustCollection UserApplicationTrusts
|
|
{
|
|
get
|
|
{
|
|
if (ApplicationSecurityManager._userAppTrusts == null)
|
|
{
|
|
ApplicationSecurityManager._userAppTrusts = new ApplicationTrustCollection();
|
|
}
|
|
return ApplicationSecurityManager._userAppTrusts;
|
|
}
|
|
}
|
|
|
|
/// <summary>Determines whether the user approves the specified application to execute with the requested permission set.</summary>
|
|
/// <returns>true to execute the specified application; otherwise, false.</returns>
|
|
/// <param name="activationContext">An <see cref="T:System.ActivationContext" /> identifying the activation context for the application.</param>
|
|
/// <param name="context">A <see cref="T:System.Security.Policy.TrustManagerContext" /> identifying the trust manager context for the application.</param>
|
|
/// <exception cref="T:System.ArgumentNullException">The <paramref name="activationContext" /> parameter is null.</exception>
|
|
/// <PermissionSet>
|
|
/// <IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Read="*AllFiles*" PathDiscovery="*AllFiles*" />
|
|
/// <IPermission class="System.Security.Permissions.ReflectionPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="MemberAccess" />
|
|
/// <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="ControlEvidence, ControlPolicy" />
|
|
/// </PermissionSet>
|
|
// Token: 0x0600335B RID: 13147 RVA: 0x000B079C File Offset: 0x000AE99C
|
|
[MonoTODO("Missing application manifest support")]
|
|
public static bool DetermineApplicationTrust(ActivationContext activationContext, TrustManagerContext context)
|
|
{
|
|
if (activationContext == null)
|
|
{
|
|
throw new NullReferenceException("activationContext");
|
|
}
|
|
ApplicationTrust applicationTrust = ApplicationSecurityManager.ApplicationTrustManager.DetermineApplicationTrust(activationContext, context);
|
|
return applicationTrust.IsApplicationTrustedToRun;
|
|
}
|
|
|
|
// Token: 0x04001509 RID: 5385
|
|
private const string config = "ApplicationTrust.config";
|
|
|
|
// Token: 0x0400150A RID: 5386
|
|
private static IApplicationTrustManager _appTrustManager;
|
|
|
|
// Token: 0x0400150B RID: 5387
|
|
private static ApplicationTrustCollection _userAppTrusts;
|
|
}
|
|
}
|