Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Shared / MS / Internal / securitycriticaldata.cs / 1305600 / securitycriticaldata.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // This is a helper class to facilate the storage of Security critical data ( aka "Plutonium") // It's primary purpose is to do put a [SecurityCritical] on all access to the data. // // What is "critical data" ? This is any data created that required an Assert for it's creation. // As an example - the creation of an HwndWrapper during Dispatcher.Attach. // // History: // 10/25/04 : marka Created. // //--------------------------------------------------------------------------- using System ; using System.Security ; #if WINDOWS_BASE using MS.Internal.WindowsBase; #elif PRESENTATION_CORE using MS.Internal.PresentationCore; #elif PRESENTATIONFRAMEWORK using MS.Internal.PresentationFramework; #elif DRT using MS.Internal.Drt; #else #error Attempt to use FriendAccessAllowedAttribute from an unknown assembly. using MS.Internal.YourAssemblyName; #endif namespace MS.Internal { [FriendAccessAllowed] internal struct SecurityCriticalData{ /// /// Critical - as this accesses _value which is Critical. /// Safe - as the caller already got the critical value. /// [SecurityCritical, SecurityTreatAsSafe] internal SecurityCriticalData(T value) { _value = value; } //// Critical "by definition" - this class is intended only to store critical data. // internal T Value { [SecurityCritical] get { return _value; } } ////// Critical - by definition as this is a wrapper for Critical data. /// [SecurityCritical] private T _value; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // This is a helper class to facilate the storage of Security critical data ( aka "Plutonium") // It's primary purpose is to do put a [SecurityCritical] on all access to the data. // // What is "critical data" ? This is any data created that required an Assert for it's creation. // As an example - the creation of an HwndWrapper during Dispatcher.Attach. // // History: // 10/25/04 : marka Created. // //--------------------------------------------------------------------------- using System ; using System.Security ; #if WINDOWS_BASE using MS.Internal.WindowsBase; #elif PRESENTATION_CORE using MS.Internal.PresentationCore; #elif PRESENTATIONFRAMEWORK using MS.Internal.PresentationFramework; #elif DRT using MS.Internal.Drt; #else #error Attempt to use FriendAccessAllowedAttribute from an unknown assembly. using MS.Internal.YourAssemblyName; #endif namespace MS.Internal { [FriendAccessAllowed] internal struct SecurityCriticalData{ /// /// Critical - as this accesses _value which is Critical. /// Safe - as the caller already got the critical value. /// [SecurityCritical, SecurityTreatAsSafe] internal SecurityCriticalData(T value) { _value = value; } //// Critical "by definition" - this class is intended only to store critical data. // internal T Value { [SecurityCritical] get { return _value; } } ////// Critical - by definition as this is a wrapper for Critical data. /// [SecurityCritical] private T _value; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- NamespaceEmitter.cs
- CachedPathData.cs
- PriorityChain.cs
- FreezableOperations.cs
- WarningException.cs
- CodeSubDirectory.cs
- JoinGraph.cs
- XmlSchemaInclude.cs
- ExtensionElementCollection.cs
- TextElementEnumerator.cs
- AttributeProviderAttribute.cs
- PropertyManager.cs
- AlternationConverter.cs
- ProfessionalColors.cs
- ToolStripDropDownMenu.cs
- LayoutSettings.cs
- Signature.cs
- RegexWorker.cs
- WebPartConnectionsCancelEventArgs.cs
- loginstatus.cs
- ToolboxItemLoader.cs
- StyleModeStack.cs
- Operand.cs
- AlphaSortedEnumConverter.cs
- RsaSecurityTokenParameters.cs
- WindowVisualStateTracker.cs
- ellipse.cs
- DbConnectionPoolGroup.cs
- StringFunctions.cs
- ConfigurationFileMap.cs
- ProcessModule.cs
- OdbcConnectionFactory.cs
- PenLineCapValidation.cs
- ProfilePropertySettings.cs
- InternalConfigHost.cs
- AmbientProperties.cs
- RefExpr.cs
- ProxyManager.cs
- FormParameter.cs
- ReplacementText.cs
- SecurityContext.cs
- HtmlToClrEventProxy.cs
- ValidationErrorCollection.cs
- TypeUtils.cs
- RemotingConfiguration.cs
- WebServiceFault.cs
- CipherData.cs
- ProtocolsConfigurationHandler.cs
- Configuration.cs
- PassportAuthenticationModule.cs
- TypeListConverter.cs
- ValueTypeFixupInfo.cs
- TreeViewDataItemAutomationPeer.cs
- TextWriterTraceListener.cs
- CheckBoxBaseAdapter.cs
- CompModSwitches.cs
- AssemblyNameProxy.cs
- WorkflowViewElement.cs
- RawStylusInputReport.cs
- DynamicValidatorEventArgs.cs
- DataSourceControl.cs
- BitmapEffectDrawingContent.cs
- Hex.cs
- TerminatorSinks.cs
- MetaModel.cs
- WindowsRichEdit.cs
- HttpListenerException.cs
- WindowsScrollBarBits.cs
- WebBrowserUriTypeConverter.cs
- MaxSessionCountExceededException.cs
- D3DImage.cs
- PeerTransportBindingElement.cs
- TagPrefixAttribute.cs
- DoubleAnimationUsingKeyFrames.cs
- AutomationElementIdentifiers.cs
- SurrogateEncoder.cs
- ClientTargetCollection.cs
- PreProcessor.cs
- ObjectRef.cs
- DataGridViewColumnEventArgs.cs
- WindowsScroll.cs
- ObservableDictionary.cs
- _NestedMultipleAsyncResult.cs
- IProvider.cs
- DragEvent.cs
- CompModSwitches.cs
- ParserStreamGeometryContext.cs
- XmlLoader.cs
- ResizeGrip.cs
- MimeParameterWriter.cs
- SelectedDatesCollection.cs
- TrackingDataItemValue.cs
- WebUtil.cs
- PasswordTextNavigator.cs
- _TLSstream.cs
- NetworkInformationPermission.cs
- StringSorter.cs
- ButtonFlatAdapter.cs
- SqlReferenceCollection.cs
- InternalConfigRoot.cs