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
- TextRunProperties.cs
- BufferedStream2.cs
- Trace.cs
- SerializationSectionGroup.cs
- XmlAnyElementAttribute.cs
- SmtpClient.cs
- TransformConverter.cs
- WindowsTooltip.cs
- DeferredSelectedIndexReference.cs
- XmlQueryType.cs
- HelloOperationCD1AsyncResult.cs
- SqlNotificationRequest.cs
- ParameterToken.cs
- DataServiceException.cs
- PackageRelationshipCollection.cs
- IPGlobalProperties.cs
- HexParser.cs
- AspNetCompatibilityRequirementsMode.cs
- COM2TypeInfoProcessor.cs
- SessionEndingCancelEventArgs.cs
- CssTextWriter.cs
- SettingsSavedEventArgs.cs
- MergePropertyDescriptor.cs
- AssemblySettingAttributes.cs
- ApplyImportsAction.cs
- SerializationEventsCache.cs
- PermissionAttributes.cs
- AdornerHitTestResult.cs
- SectionRecord.cs
- XmlWriterSettings.cs
- ellipse.cs
- ResourceReferenceExpressionConverter.cs
- EditCommandColumn.cs
- Color.cs
- OutOfMemoryException.cs
- EntitySetRetriever.cs
- ScriptControl.cs
- ResizingMessageFilter.cs
- GlobalizationAssembly.cs
- DoWorkEventArgs.cs
- Byte.cs
- ConnectionStringsSection.cs
- RegexWorker.cs
- ProfileParameter.cs
- CheckBoxList.cs
- XmlSchemaExternal.cs
- _AutoWebProxyScriptEngine.cs
- FileUtil.cs
- DrawListViewSubItemEventArgs.cs
- GeometryGroup.cs
- AtomMaterializer.cs
- RotateTransform.cs
- SendActivity.cs
- ContractMethodInfo.cs
- GroupBox.cs
- XmlSerializationGeneratedCode.cs
- PresentationSource.cs
- ProfileSettingsCollection.cs
- TextEndOfSegment.cs
- XmlBoundElement.cs
- ConditionValidator.cs
- RenderDataDrawingContext.cs
- RenamedEventArgs.cs
- AQNBuilder.cs
- GlyphRunDrawing.cs
- CommunicationException.cs
- WebRequestModuleElementCollection.cs
- ComboBoxAutomationPeer.cs
- FontResourceCache.cs
- ComPlusServiceHost.cs
- DataGridViewRowEventArgs.cs
- InputScopeNameConverter.cs
- ControlCachePolicy.cs
- MexHttpBindingCollectionElement.cs
- LineSegment.cs
- ColorEditor.cs
- EntitySetBaseCollection.cs
- BitSet.cs
- DESCryptoServiceProvider.cs
- ClientUIRequest.cs
- PropertyPathConverter.cs
- WebBrowserNavigatedEventHandler.cs
- RegistryPermission.cs
- ErrorProvider.cs
- RSAOAEPKeyExchangeDeformatter.cs
- DockPattern.cs
- PartialCachingAttribute.cs
- SessionStateContainer.cs
- EntityDataSourceContextCreatingEventArgs.cs
- CacheDict.cs
- SessionStateUtil.cs
- DescriptionAttribute.cs
- XmlUtil.cs
- BinHexEncoder.cs
- FontStretch.cs
- NoneExcludedImageIndexConverter.cs
- Pair.cs
- DateTime.cs
- SafeNativeMethods.cs
- QuestionEventArgs.cs