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
- PartDesigner.cs
- StreamGeometry.cs
- ResourceAttributes.cs
- FragmentQueryKB.cs
- BehaviorEditorPart.cs
- ExceptionUtil.cs
- DependencyPropertyChangedEventArgs.cs
- ObjectListGeneralPage.cs
- FigureParagraph.cs
- CompiledIdentityConstraint.cs
- AutomationProperties.cs
- DbReferenceCollection.cs
- MouseDevice.cs
- Baml2006Reader.cs
- RegexRunnerFactory.cs
- ProviderMetadataCachedInformation.cs
- SymbolType.cs
- GridViewRowEventArgs.cs
- BulletedList.cs
- WindowsNonControl.cs
- ByteRangeDownloader.cs
- DNS.cs
- HandlerBase.cs
- CornerRadius.cs
- NonBatchDirectoryCompiler.cs
- Transform.cs
- HtmlInputControl.cs
- DiscoveryClientDocuments.cs
- BoundsDrawingContextWalker.cs
- CfgParser.cs
- XmlObjectSerializer.cs
- StringUtil.cs
- SyncMethodInvoker.cs
- DataGridPageChangedEventArgs.cs
- TextEditorTyping.cs
- FileSystemInfo.cs
- SynchronizationContextHelper.cs
- ArgIterator.cs
- SQlBooleanStorage.cs
- FillBehavior.cs
- LambdaCompiler.Address.cs
- CharEnumerator.cs
- WindowsSpinner.cs
- DataTablePropertyDescriptor.cs
- PropertyState.cs
- SizeConverter.cs
- WindowsFormsSectionHandler.cs
- EventHandlerList.cs
- SqlDependencyListener.cs
- HttpAsyncResult.cs
- HtmlWindowCollection.cs
- PropertyExpression.cs
- StatusBarItem.cs
- Delegate.cs
- PersonalizableAttribute.cs
- SessionEndingCancelEventArgs.cs
- StateMachineWorkflow.cs
- ArgumentException.cs
- ModelVisual3D.cs
- GridViewAutomationPeer.cs
- DeviceContexts.cs
- SafeRegistryKey.cs
- RegionInfo.cs
- XsdCachingReader.cs
- SemanticKeyElement.cs
- PropertyEmitterBase.cs
- SecurityPermission.cs
- SafeNativeMethods.cs
- CodeArrayCreateExpression.cs
- HiddenField.cs
- RequiredFieldValidator.cs
- LocatorPart.cs
- StateMachineDesignerPaint.cs
- SortFieldComparer.cs
- BoundingRectTracker.cs
- RegexRunnerFactory.cs
- ToolStripGrip.cs
- DocumentPaginator.cs
- Deserializer.cs
- TraceEventCache.cs
- MergePropertyDescriptor.cs
- SystemIPInterfaceProperties.cs
- OletxTransactionFormatter.cs
- WindowsScrollBar.cs
- SendKeys.cs
- CngKeyBlobFormat.cs
- Propagator.JoinPropagator.cs
- KeyPullup.cs
- DesignConnectionCollection.cs
- QuaternionRotation3D.cs
- InternalResources.cs
- RectangleHotSpot.cs
- WebPartHeaderCloseVerb.cs
- WebServiceFault.cs
- FileStream.cs
- Tokenizer.cs
- DropDownList.cs
- InputManager.cs
- ControlIdConverter.cs
- ModuleConfigurationInfo.cs