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
- FormattedText.cs
- DataGridViewImageCell.cs
- ExceptionUtil.cs
- WizardStepCollectionEditor.cs
- CapabilitiesPattern.cs
- FileUtil.cs
- VirtualizedContainerService.cs
- UserControlBuildProvider.cs
- XPathNodePointer.cs
- TTSEngineTypes.cs
- ContactManager.cs
- ActivitySurrogate.cs
- OleDbConnectionFactory.cs
- EditingScopeUndoUnit.cs
- TypeBuilderInstantiation.cs
- CollectionViewGroupInternal.cs
- AttributeSetAction.cs
- DataGridBoolColumn.cs
- CodeExpressionCollection.cs
- MethodResolver.cs
- CompoundFileStreamReference.cs
- SQLResource.cs
- HttpsChannelFactory.cs
- TableColumn.cs
- CreateUserWizardStep.cs
- ConfigurationManagerInternalFactory.cs
- SessionIDManager.cs
- ManipulationDeltaEventArgs.cs
- Globals.cs
- RefExpr.cs
- TransactionState.cs
- InternalPolicyElement.cs
- XmlToDatasetMap.cs
- StringValidator.cs
- XmlAttributeProperties.cs
- PermissionAttributes.cs
- EmptyEnumerator.cs
- SerializationFieldInfo.cs
- ModelItemExtensions.cs
- SchemaImporterExtensionsSection.cs
- XpsS0ValidatingLoader.cs
- StandardOleMarshalObject.cs
- XmlSchemaObjectTable.cs
- IQueryable.cs
- ToolStripItem.cs
- IDQuery.cs
- TemplateControlParser.cs
- DynamicValidator.cs
- SpeechAudioFormatInfo.cs
- WindowsIdentity.cs
- ComboBoxRenderer.cs
- LinkedList.cs
- ProtocolsSection.cs
- NullRuntimeConfig.cs
- XmlILConstructAnalyzer.cs
- CodeParameterDeclarationExpressionCollection.cs
- AttachmentCollection.cs
- _Rfc2616CacheValidators.cs
- AsyncStreamReader.cs
- XPathEmptyIterator.cs
- MouseButtonEventArgs.cs
- MethodInfo.cs
- ObjectStateEntryDbDataRecord.cs
- SHA256Managed.cs
- WeakReferenceEnumerator.cs
- StackSpiller.Bindings.cs
- GenericsInstances.cs
- XmlSchema.cs
- TextParagraphCache.cs
- RoleGroupCollection.cs
- GridViewUpdateEventArgs.cs
- OrCondition.cs
- HMACSHA1.cs
- Currency.cs
- PeerResolverBindingElement.cs
- GroupByExpressionRewriter.cs
- SQLMoney.cs
- WebPartVerb.cs
- EventHandlerList.cs
- SettingsPropertyValueCollection.cs
- LinqDataSourceHelper.cs
- InlineObject.cs
- LineMetrics.cs
- GatewayDefinition.cs
- DataControlPagerLinkButton.cs
- ListViewGroupCollectionEditor.cs
- StateFinalizationDesigner.cs
- SerializationSectionGroup.cs
- HtmlControl.cs
- XmlCountingReader.cs
- ErrorFormatter.cs
- SizeConverter.cs
- ConfigXmlAttribute.cs
- Activity.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- ClientTargetSection.cs
- baseaxisquery.cs
- DesignColumn.cs
- StoreItemCollection.Loader.cs
- WebPartUtil.cs