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
- HandledEventArgs.cs
- DbException.cs
- CodeAttributeDeclarationCollection.cs
- BindingList.cs
- ClosableStream.cs
- DbParameterHelper.cs
- EntityWrapperFactory.cs
- IsolationInterop.cs
- Style.cs
- HashSetDebugView.cs
- PrimitiveSchema.cs
- ProjectionCamera.cs
- SvcMapFile.cs
- LinqDataSourceInsertEventArgs.cs
- RowToParametersTransformer.cs
- ISAPIRuntime.cs
- InstanceNotReadyException.cs
- ToolBarOverflowPanel.cs
- IntSecurity.cs
- IfAction.cs
- DbCommandTree.cs
- DataGridViewTextBoxColumn.cs
- SafeFileMappingHandle.cs
- ObjectTokenCategory.cs
- milexports.cs
- XmlDesignerDataSourceView.cs
- DispatcherTimer.cs
- ColorContextHelper.cs
- RelationshipConstraintValidator.cs
- ScrollItemPatternIdentifiers.cs
- AnnotationResource.cs
- TypeSemantics.cs
- HashAlgorithm.cs
- SemanticResolver.cs
- WindowsServiceCredential.cs
- AxHost.cs
- AccessDataSourceView.cs
- SerializerWriterEventHandlers.cs
- ModuleElement.cs
- WaitingCursor.cs
- QilTypeChecker.cs
- FillBehavior.cs
- DynamicContractTypeBuilder.cs
- PackageFilter.cs
- AccessorTable.cs
- DataTableClearEvent.cs
- SHA1Managed.cs
- SafeTokenHandle.cs
- Light.cs
- Mappings.cs
- NotifyInputEventArgs.cs
- XmlCodeExporter.cs
- StrongNameMembershipCondition.cs
- XmlSchemaInfo.cs
- ArglessEventHandlerProxy.cs
- Profiler.cs
- MsmqTransportBindingElement.cs
- ReferenceConverter.cs
- ActivationServices.cs
- MoveSizeWinEventHandler.cs
- ManipulationLogic.cs
- SatelliteContractVersionAttribute.cs
- CustomLineCap.cs
- SchemaInfo.cs
- SwitchLevelAttribute.cs
- ApplicationHost.cs
- Assembly.cs
- TemplateXamlTreeBuilder.cs
- PointCollection.cs
- RequestSecurityToken.cs
- RadioButtonStandardAdapter.cs
- XmlBinaryReader.cs
- CultureInfoConverter.cs
- _SSPISessionCache.cs
- SqlBulkCopyColumnMapping.cs
- DataGridCellAutomationPeer.cs
- ListViewItem.cs
- DataListCommandEventArgs.cs
- ListBase.cs
- BooleanProjectedSlot.cs
- DrawingContextWalker.cs
- EnumerableCollectionView.cs
- AnimationException.cs
- UpdatableWrapper.cs
- BaseInfoTable.cs
- TryLoadRunnableWorkflowCommand.cs
- ExpressionVisitorHelpers.cs
- sitestring.cs
- PropertyIdentifier.cs
- WebInvokeAttribute.cs
- MSHTMLHost.cs
- ContentTextAutomationPeer.cs
- PropertyValueUIItem.cs
- Activity.cs
- KeyValuePair.cs
- StylusEventArgs.cs
- TraceContextRecord.cs
- ColorMatrix.cs
- WebPartUserCapability.cs
- ListBoxItemAutomationPeer.cs