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
- DataSvcMapFileSerializer.cs
- SafeSerializationManager.cs
- CustomErrorsSectionWrapper.cs
- MetadataSection.cs
- RightsManagementEncryptedStream.cs
- StringInfo.cs
- DataView.cs
- XmlHierarchyData.cs
- PeerName.cs
- Pair.cs
- GridViewColumn.cs
- InstalledFontCollection.cs
- RoutedEventValueSerializer.cs
- ChildrenQuery.cs
- RSAProtectedConfigurationProvider.cs
- MenuTracker.cs
- AdornerLayer.cs
- SharedPersonalizationStateInfo.cs
- UseManagedPresentationBindingElement.cs
- HtmlInputFile.cs
- EntitySqlQueryCacheEntry.cs
- MultiDataTrigger.cs
- ErrorHandlingAcceptor.cs
- WebBrowserContainer.cs
- MemberJoinTreeNode.cs
- StringAnimationUsingKeyFrames.cs
- WebPartEditVerb.cs
- dataobject.cs
- SoapSchemaMember.cs
- DesignerView.xaml.cs
- SystemTcpStatistics.cs
- TypeInfo.cs
- Animatable.cs
- MessageSecurityVersionConverter.cs
- ValidatingPropertiesEventArgs.cs
- MdbDataFileEditor.cs
- DockingAttribute.cs
- XmlImplementation.cs
- InkCanvasSelectionAdorner.cs
- Path.cs
- DecoderExceptionFallback.cs
- RegexEditorDialog.cs
- RuntimeConfigLKG.cs
- Odbc32.cs
- SoapDocumentServiceAttribute.cs
- NetworkInformationPermission.cs
- WebHttpSecurityModeHelper.cs
- WizardStepCollectionEditor.cs
- ShapeTypeface.cs
- util.cs
- UnionExpr.cs
- ToolStripGrip.cs
- _ListenerRequestStream.cs
- DrawingGroup.cs
- NavigateEvent.cs
- Version.cs
- BufferedOutputStream.cs
- RegexStringValidatorAttribute.cs
- Guid.cs
- VisualTreeUtils.cs
- OperationCanceledException.cs
- BindingExpressionUncommonField.cs
- CollectionChangeEventArgs.cs
- MeasureData.cs
- ItemsControl.cs
- XmlValueConverter.cs
- CircleHotSpot.cs
- ScaleTransform.cs
- CodeDomSerializationProvider.cs
- SmtpNetworkElement.cs
- RowToFieldTransformer.cs
- Stack.cs
- FormViewRow.cs
- DoubleMinMaxAggregationOperator.cs
- WeakHashtable.cs
- DriveInfo.cs
- OdbcParameterCollection.cs
- IDispatchConstantAttribute.cs
- NavigationProperty.cs
- CompoundFileReference.cs
- WindowsTokenRoleProvider.cs
- DBAsyncResult.cs
- SqlAliaser.cs
- LocalValueEnumerator.cs
- OdbcStatementHandle.cs
- TimeSpan.cs
- CodeParameterDeclarationExpressionCollection.cs
- BitmapEffectInputData.cs
- WsatAdminException.cs
- XamlPoint3DCollectionSerializer.cs
- WpfKnownMemberInvoker.cs
- PropertyGridCommands.cs
- ByeMessageApril2005.cs
- GridViewSortEventArgs.cs
- CanonicalXml.cs
- DerivedKeySecurityTokenStub.cs
- ReliableOutputSessionChannel.cs
- Selection.cs
- CompilationUnit.cs
- SecurityRuntime.cs