Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / System.Runtime.DurableInstancing / System / Runtime / PartialTrustHelpers.cs / 1305376 / PartialTrustHelpers.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.Runtime { using System.Security; using System.Security.Permissions; using System.Runtime.CompilerServices; using System.Reflection; static class PartialTrustHelpers { [Fx.Tag.SecurityNote(Critical = "used in a security-sensitive decision")] [SecurityCritical] static Type aptca; internal static bool ShouldFlowSecurityContext { [Fx.Tag.SecurityNote(Critical = "used in a security-sensitive decision")] [SecurityCritical] get { if (AppDomain.CurrentDomain.IsHomogenous) { return false; } return SecurityManager.CurrentThreadRequiresSecurityContextCapture(); } } [Fx.Tag.SecurityNote(Critical = "used in a security-sensitive decision")] [SecurityCritical] internal static bool IsInFullTrust() { if (AppDomain.CurrentDomain.IsHomogenous) { return AppDomain.CurrentDomain.IsFullyTrusted; } else { if (!SecurityManager.CurrentThreadRequiresSecurityContextCapture()) { return true; } try { DemandForFullTrust(); return true; } catch (SecurityException) { return false; } } } [Fx.Tag.SecurityNote(Critical = "Captures security context with identity flow suppressed, " + "this requires satisfying a LinkDemand for infrastructure.")] [SecurityCritical] internal static SecurityContext CaptureSecurityContextNoIdentityFlow() { // capture the security context but never flow windows identity if (SecurityContext.IsWindowsIdentityFlowSuppressed()) { return SecurityContext.Capture(); } else { using (SecurityContext.SuppressFlowWindowsIdentity()) { return SecurityContext.Capture(); } } } [Fx.Tag.SecurityNote(Critical = "used in a security-sensitive decision")] [SecurityCritical] internal static bool IsTypeAptca(Type type) { Assembly assembly = type.Assembly; return IsAssemblyAptca(assembly) || !IsAssemblySigned(assembly); } [Fx.Tag.SecurityNote(Critical = "used in a security-sensitive decision")] [SecurityCritical] [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] [MethodImpl(MethodImplOptions.NoInlining)] static void DemandForFullTrust() { } [Fx.Tag.SecurityNote(Critical = "used in a security-sensitive decision")] [SecurityCritical] static bool IsAssemblyAptca(Assembly assembly) { if (aptca == null) { aptca = typeof(AllowPartiallyTrustedCallersAttribute); } return assembly.GetCustomAttributes(aptca, false).Length > 0; } [Fx.Tag.SecurityNote(Critical = "used in a security-sensitive decision")] [SecurityCritical] [FileIOPermission(SecurityAction.Assert, Unrestricted = true)] static bool IsAssemblySigned(Assembly assembly) { byte[] publicKeyToken = assembly.GetName().GetPublicKeyToken(); return publicKeyToken != null & publicKeyToken.Length > 0; } [Fx.Tag.SecurityNote(Critical = "used in a security-sensitive decision")] [SecurityCritical] internal static bool CheckAppDomainPermissions(PermissionSet permissions) { return AppDomain.CurrentDomain.IsHomogenous && permissions.IsSubsetOf(AppDomain.CurrentDomain.PermissionSet); } [Fx.Tag.SecurityNote(Critical = "used in a security-sensitive decision")] [SecurityCritical] internal static bool HasEtwPermissions() { //Currently unrestricted permissions are required to create Etw provider. PermissionSet permissions = new PermissionSet(PermissionState.Unrestricted); return CheckAppDomainPermissions(permissions); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EventPrivateKey.cs
- CounterSample.cs
- CryptoProvider.cs
- TouchFrameEventArgs.cs
- ModelFactory.cs
- TemplateApplicationHelper.cs
- OrElse.cs
- GenericRootAutomationPeer.cs
- MissingMethodException.cs
- ComponentCache.cs
- BeginEvent.cs
- DataTableMapping.cs
- CfgParser.cs
- ExceptionUtility.cs
- TypeGeneratedEventArgs.cs
- GZipDecoder.cs
- PrintPreviewDialog.cs
- PropertyConverter.cs
- KeyConstraint.cs
- DesignerPainter.cs
- ImportCatalogPart.cs
- EntityKeyElement.cs
- ExpressionBuilder.cs
- CodeSubDirectory.cs
- User.cs
- TransformerTypeCollection.cs
- BinHexEncoder.cs
- PopOutPanel.cs
- InkCanvasInnerCanvas.cs
- AttachedPropertyMethodSelector.cs
- Point4D.cs
- TextHidden.cs
- MailAddressCollection.cs
- XmlSchemaDocumentation.cs
- UpdateExpressionVisitor.cs
- ProxyGenerationError.cs
- BigInt.cs
- SubMenuStyleCollection.cs
- DPAPIProtectedConfigurationProvider.cs
- TextTrailingWordEllipsis.cs
- XPathAxisIterator.cs
- EditorZoneBase.cs
- ResourcesChangeInfo.cs
- ToolStripSplitStackLayout.cs
- Cursors.cs
- OSFeature.cs
- HtmlEncodedRawTextWriter.cs
- _UriSyntax.cs
- PerspectiveCamera.cs
- SQLInt16Storage.cs
- ValueCollectionParameterReader.cs
- CodeGen.cs
- PipeException.cs
- DataGridViewCellValidatingEventArgs.cs
- SAPICategories.cs
- FileSystemWatcher.cs
- TextParaLineResult.cs
- PermissionRequestEvidence.cs
- UrlMapping.cs
- ViewUtilities.cs
- EtwTrace.cs
- ConversionValidationRule.cs
- Error.cs
- UnsafeNetInfoNativeMethods.cs
- SoapClientProtocol.cs
- SolidBrush.cs
- InputMethodStateTypeInfo.cs
- RootProfilePropertySettingsCollection.cs
- PrinterResolution.cs
- BasePattern.cs
- Tokenizer.cs
- XmlTextEncoder.cs
- SettingsSection.cs
- ContextMenuStrip.cs
- PropertyItemInternal.cs
- ByteArrayHelperWithString.cs
- SortQuery.cs
- TablePattern.cs
- TagMapInfo.cs
- ResXDataNode.cs
- IImplicitResourceProvider.cs
- ResourceProperty.cs
- SoapFormatExtensions.cs
- BitmapEffect.cs
- NumberSubstitution.cs
- VirtualizedItemPattern.cs
- ContentPropertyAttribute.cs
- SoapReflector.cs
- DataConnectionHelper.cs
- SubtreeProcessor.cs
- PageCatalogPart.cs
- SettingsPropertyNotFoundException.cs
- GroupBox.cs
- DescendantQuery.cs
- BigInt.cs
- GPPOINT.cs
- RoleGroup.cs
- NonClientArea.cs
- SessionPageStateSection.cs
- StringFreezingAttribute.cs