Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Shared / MS / Internal / securitycriticaldata.cs / 1 / 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
- InternalControlCollection.cs
- FileDataSourceCache.cs
- SystemTcpStatistics.cs
- GuidelineCollection.cs
- TemplateBuilder.cs
- JsonServiceDocumentSerializer.cs
- DoubleLink.cs
- ToolStripLocationCancelEventArgs.cs
- DescendantBaseQuery.cs
- Synchronization.cs
- CodeAccessSecurityEngine.cs
- KoreanCalendar.cs
- QilName.cs
- ViewStateChangedEventArgs.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- Registry.cs
- ComboBoxItem.cs
- Function.cs
- ProviderCommandInfoUtils.cs
- TemplateKey.cs
- MachineKeySection.cs
- ControlCachePolicy.cs
- ScrollProviderWrapper.cs
- MimeFormImporter.cs
- SqlBulkCopy.cs
- PrivilegedConfigurationManager.cs
- Paragraph.cs
- X509SecurityTokenProvider.cs
- XmlArrayItemAttributes.cs
- CodeAttributeDeclarationCollection.cs
- StrokeIntersection.cs
- DeferredReference.cs
- ActivationArguments.cs
- _ProxyChain.cs
- CultureTableRecord.cs
- PixelFormats.cs
- InlineUIContainer.cs
- SystemShuttingDownException.cs
- CompilerLocalReference.cs
- CompletedAsyncResult.cs
- EventData.cs
- SystemIPInterfaceProperties.cs
- StringResourceManager.cs
- ScanQueryOperator.cs
- Hashtable.cs
- RegexCapture.cs
- InteropBitmapSource.cs
- DynamicObject.cs
- PermissionListSet.cs
- AssociationSetMetadata.cs
- XmlSchemaInferenceException.cs
- BitmapPalette.cs
- XmlKeywords.cs
- PngBitmapDecoder.cs
- ColorContextHelper.cs
- ItemCheckedEvent.cs
- CompilationRelaxations.cs
- ListBox.cs
- DetailsViewPagerRow.cs
- DetailsViewAutoFormat.cs
- QueryOutputWriter.cs
- GZipStream.cs
- LoginName.cs
- IdleTimeoutMonitor.cs
- QilName.cs
- ServiceHostingEnvironment.cs
- InputScope.cs
- PersistenceProviderBehavior.cs
- Section.cs
- Padding.cs
- TransformDescriptor.cs
- ScaleTransform3D.cs
- ping.cs
- TableCellsCollectionEditor.cs
- ExchangeUtilities.cs
- ControlBuilder.cs
- JsonStringDataContract.cs
- MimeMapping.cs
- Helper.cs
- QuotedPrintableStream.cs
- DocumentationServerProtocol.cs
- MessageFormatterConverter.cs
- DatePickerTextBox.cs
- HitTestFilterBehavior.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- DeviceContexts.cs
- XmlName.cs
- PageThemeBuildProvider.cs
- DbParameterCollection.cs
- JsonClassDataContract.cs
- NativeMethods.cs
- TreeViewDataItemAutomationPeer.cs
- SeparatorAutomationPeer.cs
- TagMapCollection.cs
- FlowNode.cs
- ServerValidateEventArgs.cs
- HttpProtocolImporter.cs
- ClientConfigPaths.cs
- InstalledFontCollection.cs
- Translator.cs