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
- CheckPair.cs
- XamlGridLengthSerializer.cs
- InvokeMemberBinder.cs
- XmlSchemaInclude.cs
- AsymmetricSignatureDeformatter.cs
- SafeNativeMethods.cs
- SimpleApplicationHost.cs
- EdmError.cs
- PagedControl.cs
- XmlDocumentFragment.cs
- CompositeDesignerAccessibleObject.cs
- CheckBoxField.cs
- SecurityDescriptor.cs
- GPPOINTF.cs
- GeneralTransform3D.cs
- Pkcs7Recipient.cs
- PropertyDescriptorCollection.cs
- DayRenderEvent.cs
- UnmanagedMarshal.cs
- DataSourceProvider.cs
- AttachedAnnotationChangedEventArgs.cs
- InfoCardSymmetricCrypto.cs
- TableLayoutPanel.cs
- FormViewRow.cs
- SortedList.cs
- TransactionScope.cs
- Helper.cs
- WebServiceClientProxyGenerator.cs
- AppLevelCompilationSectionCache.cs
- AnnotationComponentChooser.cs
- SafeCryptHandles.cs
- StorageComplexPropertyMapping.cs
- WebPartZoneBase.cs
- DataTableTypeConverter.cs
- OLEDB_Enum.cs
- EmptyEnumerable.cs
- DataTemplateSelector.cs
- PersonalizablePropertyEntry.cs
- IDispatchConstantAttribute.cs
- BulletDecorator.cs
- TextServicesDisplayAttribute.cs
- PropertyGeneratedEventArgs.cs
- SqlCachedBuffer.cs
- CodeMethodReturnStatement.cs
- MediaContextNotificationWindow.cs
- MbpInfo.cs
- AutomationIdentifier.cs
- AppLevelCompilationSectionCache.cs
- Paragraph.cs
- ExecutionEngineException.cs
- WebBrowserNavigatedEventHandler.cs
- ToolStripItem.cs
- Adorner.cs
- NGCSerializationManager.cs
- Lease.cs
- Blend.cs
- NopReturnReader.cs
- SmiEventStream.cs
- FixedHyperLink.cs
- SafeNativeMethods.cs
- MetadataSource.cs
- TextSpan.cs
- LicFileLicenseProvider.cs
- DataControlFieldCollection.cs
- CustomAttributeBuilder.cs
- StylusPointPropertyUnit.cs
- ContentOperations.cs
- ZipIOFileItemStream.cs
- DoubleLinkListEnumerator.cs
- TickBar.cs
- PartManifestEntry.cs
- EventSchemaTraceListener.cs
- SqlNodeTypeOperators.cs
- SRGSCompiler.cs
- ObjectQueryExecutionPlan.cs
- DefaultTextStore.cs
- CngKey.cs
- TreeIterators.cs
- ExpandCollapsePattern.cs
- ExpressionBindingCollection.cs
- List.cs
- PlacementWorkspace.cs
- Errors.cs
- EventlogProvider.cs
- EncoderReplacementFallback.cs
- LockRecursionException.cs
- DbConnectionPoolOptions.cs
- Debugger.cs
- sqlpipe.cs
- ReflectionHelper.cs
- sitestring.cs
- DesignerSerializationOptionsAttribute.cs
- AsyncOperationManager.cs
- PolicyException.cs
- BulletedListEventArgs.cs
- MenuCommand.cs
- RefreshEventArgs.cs
- WebHostUnsafeNativeMethods.cs
- XmlIterators.cs
- LineBreakRecord.cs