Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / SystemIdentity.cs / 1 / SystemIdentity.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace Microsoft.InfoCards { using System; using System.ComponentModel; using System.Globalization; using System.Runtime.InteropServices; using System.Security.Principal; using IDT = Microsoft.InfoCards.Diagnostics.InfoCardTrace; internal sealed class SystemIdentity : IDisposable { bool m_isDisposed; WindowsIdentity m_identity; object m_sync; public static readonly IdentityReference LsaIdentityReference = new SecurityIdentifier( "SY" ); public SystemIdentity( bool throwIfAlreadySystem ) { m_sync = new object(); WindowsIdentity identity = WindowsIdentity.GetCurrent(); if( identity.IsSystem && throwIfAlreadySystem ) { // // This is an internal fatal error. // throw IDT.ThrowHelperError( new InvalidOperationException( SR.GetString( SR.UserIdentityEqualSystemNotSupported ) ) ); } else if( !identity.IsSystem ) { m_identity = identity; #pragma warning suppress 56523 if( !NativeMethods.RevertToSelf() ) { IDT.Assert( false, "Identity management failure" ); } } else { // // Do nothing. we are LSA already and throwIfAlreadySystem == false // IDT.Assert( null == m_identity, "m_identity should be null when we are system and throwIfAlreadySystem == false" ); } } void IDisposable.Dispose() { if ( m_isDisposed ) { return; } lock( m_sync ) { if( m_isDisposed ) { return; } m_isDisposed = true; if( null != m_identity ) { // // Impersonate the user // if( !NativeMethods.ImpersonateLoggedOnUser( m_identity.Token ) ) { int hr = Marshal.GetHRForLastWin32Error(); // // This exception is fatal to our service. // it could corrupt the flow of identity that the service expects. // Failfast here. // Diagnostics.InfoCardTrace.FailFast( String.Format( CultureInfo.InvariantCulture, SR.GetString( SR.StoreImpersonateLoggedOnUserFailed ), hr ) ); } m_identity.Dispose(); } } } } } // 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
- FlowDocumentPage.cs
- MethodBuilder.cs
- NameTable.cs
- RequiredFieldValidator.cs
- TypeCodeDomSerializer.cs
- Drawing.cs
- TextPatternIdentifiers.cs
- NGCSerializationManager.cs
- MgmtConfigurationRecord.cs
- ContainerParagraph.cs
- XmlUtil.cs
- DecoderBestFitFallback.cs
- ToolStripLabel.cs
- List.cs
- DefaultBinder.cs
- ConstantSlot.cs
- Timer.cs
- GenericWebPart.cs
- DataGridViewColumnCollectionDialog.cs
- PbrsForward.cs
- TextSearch.cs
- _Connection.cs
- URL.cs
- ObjectQuery_EntitySqlExtensions.cs
- SingleTagSectionHandler.cs
- DataGridViewSelectedRowCollection.cs
- QueryException.cs
- GlobalItem.cs
- TextTreeFixupNode.cs
- ColorMap.cs
- Underline.cs
- ObjectCacheSettings.cs
- TextBoxDesigner.cs
- WindowsRichEdit.cs
- QilReference.cs
- IImplicitResourceProvider.cs
- InputQueue.cs
- XPathScanner.cs
- FixedPosition.cs
- PagerStyle.cs
- InputScope.cs
- EastAsianLunisolarCalendar.cs
- AssemblyUtil.cs
- AppSettingsReader.cs
- diagnosticsswitches.cs
- GroupBoxAutomationPeer.cs
- SimpleRecyclingCache.cs
- AssociationTypeEmitter.cs
- ActiveXHost.cs
- DataListCommandEventArgs.cs
- HttpCapabilitiesEvaluator.cs
- WebPartEditorOkVerb.cs
- RSAPKCS1KeyExchangeFormatter.cs
- EventTrigger.cs
- xsdvalidator.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- TrackBar.cs
- figurelength.cs
- HideDisabledControlAdapter.cs
- Object.cs
- PageAdapter.cs
- DoubleLinkList.cs
- CheckedListBox.cs
- ScrollBar.cs
- AttachedAnnotationChangedEventArgs.cs
- DataMemberFieldConverter.cs
- PermissionSet.cs
- ItemType.cs
- XmlSignificantWhitespace.cs
- ChtmlImageAdapter.cs
- DrawingGroupDrawingContext.cs
- IisTraceWebEventProvider.cs
- DockPatternIdentifiers.cs
- KeyboardNavigation.cs
- Closure.cs
- ServiceProviders.cs
- TextureBrush.cs
- CommandHelpers.cs
- BitmapEffectInputData.cs
- controlskin.cs
- SerializationObjectManager.cs
- httpstaticobjectscollection.cs
- DataTable.cs
- CodeDirectoryCompiler.cs
- TraceHandlerErrorFormatter.cs
- BamlLocalizableResourceKey.cs
- WebBrowserSiteBase.cs
- Int32.cs
- ProviderSettings.cs
- UnicastIPAddressInformationCollection.cs
- QilBinary.cs
- BamlResourceDeserializer.cs
- Stylesheet.cs
- IDQuery.cs
- FormattedText.cs
- RecommendedAsConfigurableAttribute.cs
- ObjectDataSourceSelectingEventArgs.cs
- ControlCollection.cs
- Rect.cs
- TableItemPattern.cs