Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / System.ServiceModel.Activation / System / ServiceModel / Activation / AspNetPartialTrustHelpers.cs / 1305376 / AspNetPartialTrustHelpers.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel { using System.Runtime; using System.Security; using System.Security.Permissions; using System.Threading; using System.Web; static class AspNetPartialTrustHelpers { [Fx.Tag.SecurityNote(Critical = "Caches the PermissionSet associated with the asp.net trust level." + "This will not change over the life of the AppDomain.")] [SecurityCritical] static SecurityContext aspNetSecurityContext; [Fx.Tag.SecurityNote(Critical = "If erroneously set to true, could bypass the PermitOnly.")] [SecurityCritical] static bool isInitialized; [Fx.Tag.SecurityNote(Miscellaneous = "RequiresReview - determines if the given PermissionSet is full trust." + "We will base subsequent security decisions on this.")] static bool IsFullTrust(PermissionSet perms) { return perms == null || perms.IsUnrestricted(); } internal static bool NeedPartialTrustInvoke { [Fx.Tag.SecurityNote(Critical = "Makes a security sensitive decision, updates aspNetSecurityContext and isInitialized.", Safe = "Ok to know whether the ASP app is partial trust.")] [SecuritySafeCritical] get { if (!isInitialized) { NamedPermissionSet aspNetPermissionSet = GetHttpRuntimeNamedPermissionSet(); if (!IsFullTrust(aspNetPermissionSet)) { try { aspNetPermissionSet.PermitOnly(); aspNetSecurityContext = System.Runtime.PartialTrustHelpers.CaptureSecurityContextNoIdentityFlow(); } finally { CodeAccessPermission.RevertPermitOnly(); } } isInitialized = true; } return aspNetSecurityContext != null; } } [Fx.Tag.SecurityNote(Critical = "Asserts AspNetHostingPermission.")] [SecurityCritical] [AspNetHostingPermission(SecurityAction.Assert, Level=AspNetHostingPermissionLevel.Unrestricted)] static NamedPermissionSet GetHttpRuntimeNamedPermissionSet() { return HttpRuntime.GetNamedPermissionSet(); } [Fx.Tag.SecurityNote(Critical = "Touches aspNetSecurityContext.", Safe = "Ok to invoke the user's delegate under the PT context.")] [SecuritySafeCritical] internal static void PartialTrustInvoke(ContextCallback callback, object state) { if (NeedPartialTrustInvoke) { SecurityContext.Run(aspNetSecurityContext.CreateCopy(), callback, state); } else { callback(state); } } } } // 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
- StrokeNodeOperations2.cs
- BatchParser.cs
- SiteMapDataSourceView.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- DrawingGroup.cs
- SuppressMergeCheckAttribute.cs
- InternalDuplexChannelListener.cs
- ArraySegment.cs
- TextWriterTraceListener.cs
- DelimitedListTraceListener.cs
- InputProcessorProfilesLoader.cs
- DetailsViewCommandEventArgs.cs
- CodeSnippetExpression.cs
- EndpointDispatcher.cs
- COM2PictureConverter.cs
- LeaseManager.cs
- BindingManagerDataErrorEventArgs.cs
- Control.cs
- Int16Animation.cs
- ReferentialConstraintRoleElement.cs
- UInt16Converter.cs
- StringComparer.cs
- TrackingLocationCollection.cs
- TextModifier.cs
- SqlLiftIndependentRowExpressions.cs
- SparseMemoryStream.cs
- path.cs
- ExpressionBuilder.cs
- SiteOfOriginContainer.cs
- Label.cs
- AssociationEndMember.cs
- RefreshEventArgs.cs
- NamedPipeTransportSecurityElement.cs
- CompilationPass2TaskInternal.cs
- Authorization.cs
- ModifiableIteratorCollection.cs
- DrawListViewColumnHeaderEventArgs.cs
- SpecularMaterial.cs
- TreeViewHitTestInfo.cs
- EdmValidator.cs
- TextDocumentView.cs
- OwnerDrawPropertyBag.cs
- ProjectionPathBuilder.cs
- CacheOutputQuery.cs
- DefaultParameterValueAttribute.cs
- QilReplaceVisitor.cs
- QuaternionRotation3D.cs
- MethodBody.cs
- DataViewSettingCollection.cs
- PackagePartCollection.cs
- LinkLabel.cs
- IOThreadTimer.cs
- KeyGestureConverter.cs
- DesignerView.Commands.cs
- SparseMemoryStream.cs
- HwndStylusInputProvider.cs
- CompilerGlobalScopeAttribute.cs
- documentation.cs
- regiisutil.cs
- DataControlPagerLinkButton.cs
- GetWinFXPath.cs
- InitiatorSessionSymmetricMessageSecurityProtocol.cs
- FixedSOMLineCollection.cs
- DataKeyArray.cs
- QilReplaceVisitor.cs
- MetadataPropertyvalue.cs
- XPathNavigatorKeyComparer.cs
- ActiveXSite.cs
- SplitterCancelEvent.cs
- TypeUnloadedException.cs
- BooleanExpr.cs
- XmlSchemaAnyAttribute.cs
- SocketConnection.cs
- WebConfigurationHost.cs
- RSAPKCS1SignatureFormatter.cs
- HwndAppCommandInputProvider.cs
- TypedDataSetSchemaImporterExtension.cs
- RC2CryptoServiceProvider.cs
- UnsafeNativeMethods.cs
- COM2AboutBoxPropertyDescriptor.cs
- XmlSchemaComplexContent.cs
- Int32.cs
- InputProviderSite.cs
- DependencyPropertyConverter.cs
- _DisconnectOverlappedAsyncResult.cs
- TypedDataSetSchemaImporterExtension.cs
- SoapSchemaImporter.cs
- WhitespaceRuleReader.cs
- StringUtil.cs
- HMACSHA1.cs
- Int32Storage.cs
- ValueTypeFixupInfo.cs
- FixedSOMImage.cs
- WaitHandle.cs
- XmlMtomReader.cs
- ServerValidateEventArgs.cs
- ImageCreator.cs
- TraceHandler.cs
- TextEditorParagraphs.cs
- ComponentResourceManager.cs