Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / CompMod / Microsoft / Win32 / SafeHandles / SafeUserTokenHandle.cs / 1 / SafeUserTokenHandle.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: SafeUserTokenHandle ** **Author: David Gutierrez ([....]) ** ** A wrapper for a user token handle ** ** Date: July 8, 2002 ** ===========================================================*/ using System; using System.Security; using System.Security.Permissions; using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using Microsoft.Win32; using Microsoft.Win32.SafeHandles; using System.Runtime.ConstrainedExecution; namespace Microsoft.Win32.SafeHandles { [HostProtectionAttribute(MayLeakOnAbort = true)] [SuppressUnmanagedCodeSecurityAttribute] internal sealed class SafeUserTokenHandle : SafeHandleZeroOrMinusOneIsInvalid { // Note that OpenProcess returns 0 on failure. internal SafeUserTokenHandle() : base (true) {} internal SafeUserTokenHandle(IntPtr existingHandle, bool ownsHandle) : base(ownsHandle) { SetHandle(existingHandle); } #if !FEATURE_PAL [DllImport(ExternDll.Advapi32, CharSet=System.Runtime.InteropServices.CharSet.Auto, SetLastError=true, BestFitMapping=false)] internal extern static bool DuplicateTokenEx(SafeHandle hToken, int access, NativeMethods.SECURITY_ATTRIBUTES tokenAttributes, int impersonationLevel, int tokenType, out SafeUserTokenHandle hNewToken); #endif // !FEATURE_PAL [DllImport(ExternDll.Kernel32, ExactSpelling=true, SetLastError=true)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern bool CloseHandle(IntPtr handle); override protected bool ReleaseHandle() { return CloseHandle(handle); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: SafeUserTokenHandle ** **Author: David Gutierrez ([....]) ** ** A wrapper for a user token handle ** ** Date: July 8, 2002 ** ===========================================================*/ using System; using System.Security; using System.Security.Permissions; using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using Microsoft.Win32; using Microsoft.Win32.SafeHandles; using System.Runtime.ConstrainedExecution; namespace Microsoft.Win32.SafeHandles { [HostProtectionAttribute(MayLeakOnAbort = true)] [SuppressUnmanagedCodeSecurityAttribute] internal sealed class SafeUserTokenHandle : SafeHandleZeroOrMinusOneIsInvalid { // Note that OpenProcess returns 0 on failure. internal SafeUserTokenHandle() : base (true) {} internal SafeUserTokenHandle(IntPtr existingHandle, bool ownsHandle) : base(ownsHandle) { SetHandle(existingHandle); } #if !FEATURE_PAL [DllImport(ExternDll.Advapi32, CharSet=System.Runtime.InteropServices.CharSet.Auto, SetLastError=true, BestFitMapping=false)] internal extern static bool DuplicateTokenEx(SafeHandle hToken, int access, NativeMethods.SECURITY_ATTRIBUTES tokenAttributes, int impersonationLevel, int tokenType, out SafeUserTokenHandle hNewToken); #endif // !FEATURE_PAL [DllImport(ExternDll.Kernel32, ExactSpelling=true, SetLastError=true)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern bool CloseHandle(IntPtr handle); override protected bool ReleaseHandle() { return CloseHandle(handle); } } } // 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
- RedirectionProxy.cs
- SizeKeyFrameCollection.cs
- LabelInfo.cs
- CommandPlan.cs
- DecimalAnimationUsingKeyFrames.cs
- SecurityException.cs
- NamedElement.cs
- Literal.cs
- JsonMessageEncoderFactory.cs
- Misc.cs
- XsltOutput.cs
- CollectionExtensions.cs
- ChildChangedEventArgs.cs
- EventMap.cs
- Executor.cs
- ValidatedControlConverter.cs
- DataPagerFieldCollection.cs
- RenderOptions.cs
- QueryGeneratorBase.cs
- SoapReflectionImporter.cs
- ParameterCollection.cs
- PropVariant.cs
- CompoundFileStreamReference.cs
- VisualStyleRenderer.cs
- SystemKeyConverter.cs
- AppDomainAttributes.cs
- MobileUITypeEditor.cs
- GrammarBuilder.cs
- TickBar.cs
- VerticalAlignConverter.cs
- StringExpressionSet.cs
- WebResponse.cs
- MultilineStringConverter.cs
- EntityDataSourceContainerNameConverter.cs
- securitycriticaldata.cs
- DigestTraceRecordHelper.cs
- KeyFrames.cs
- XamlReaderHelper.cs
- designeractionbehavior.cs
- CfgSemanticTag.cs
- BevelBitmapEffect.cs
- ComponentSerializationService.cs
- CompatibleComparer.cs
- CorrelationExtension.cs
- FormViewRow.cs
- TranslateTransform3D.cs
- XmlReaderSettings.cs
- StaticFileHandler.cs
- VideoDrawing.cs
- Image.cs
- Propagator.Evaluator.cs
- SafePipeHandle.cs
- ProfileEventArgs.cs
- CalendarModeChangedEventArgs.cs
- StringDictionaryEditor.cs
- XsdDataContractImporter.cs
- sqlinternaltransaction.cs
- ComponentChangedEvent.cs
- ContainsSearchOperator.cs
- ListViewGroupCollectionEditor.cs
- XhtmlBasicObjectListAdapter.cs
- BindingGroup.cs
- ElementHostPropertyMap.cs
- WriteableBitmap.cs
- BitmapEffect.cs
- StringInfo.cs
- TabPanel.cs
- PersistenceProviderDirectory.cs
- ProtocolsConfigurationEntry.cs
- MatrixTransform.cs
- RegexTree.cs
- SessionParameter.cs
- EventItfInfo.cs
- ComponentGlyph.cs
- DataGridViewLinkColumn.cs
- CheckBoxBaseAdapter.cs
- DocumentSchemaValidator.cs
- Bitmap.cs
- ToolBarButton.cs
- BrushValueSerializer.cs
- DurableMessageDispatchInspector.cs
- Geometry.cs
- ObjectParameterCollection.cs
- HttpPostClientProtocol.cs
- DesignTimeParseData.cs
- XPathNavigator.cs
- WebReferencesBuildProvider.cs
- ToolboxItemAttribute.cs
- XmlNamespaceMapping.cs
- StatusBarPanelClickEvent.cs
- HttpRuntimeSection.cs
- CombinedHttpChannel.cs
- PointAnimationUsingKeyFrames.cs
- TextFormatterHost.cs
- Unit.cs
- ThrowHelper.cs
- ProcessRequestArgs.cs
- DbTypeMap.cs
- XmlSchemaAppInfo.cs
- WebBrowserContainer.cs