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
- DataGridViewRowsAddedEventArgs.cs
- SerializationInfoEnumerator.cs
- latinshape.cs
- ExtractCollection.cs
- IIS7UserPrincipal.cs
- DataGridSortCommandEventArgs.cs
- WindowsNonControl.cs
- PartialTrustHelpers.cs
- GeneralTransform3DGroup.cs
- GridViewRowCollection.cs
- ClockController.cs
- TextTreeTextElementNode.cs
- AuthenticationModuleElementCollection.cs
- SqlFacetAttribute.cs
- Part.cs
- PiiTraceSource.cs
- PropertiesTab.cs
- XmlSerializerVersionAttribute.cs
- PromptEventArgs.cs
- ArraySegment.cs
- ConvertersCollection.cs
- CommandID.cs
- WebRequestModuleElement.cs
- DesignerCommandAdapter.cs
- FtpCachePolicyElement.cs
- WebEvents.cs
- FrugalList.cs
- CodeTypeDeclaration.cs
- MatrixTransform3D.cs
- NavigationPropertyAccessor.cs
- ReservationCollection.cs
- SevenBitStream.cs
- ExceptionHandler.cs
- Interlocked.cs
- ConfigPathUtility.cs
- DataGridViewColumnHeaderCell.cs
- HeaderLabel.cs
- LinkLabelLinkClickedEvent.cs
- DataBinding.cs
- UpWmlMobileTextWriter.cs
- UIElementHelper.cs
- regiisutil.cs
- SmtpAuthenticationManager.cs
- GeometryCollection.cs
- Decorator.cs
- ClientBuildManager.cs
- TimeIntervalCollection.cs
- XmlDataSource.cs
- ParserOptions.cs
- MetadataStore.cs
- ExpandCollapsePattern.cs
- WindowsGraphicsWrapper.cs
- LayoutEditorPart.cs
- BulletedListDesigner.cs
- ConsumerConnectionPoint.cs
- UTF32Encoding.cs
- ChangeProcessor.cs
- TextModifierScope.cs
- SimpleHandlerBuildProvider.cs
- ZoneLinkButton.cs
- FigureHelper.cs
- SrgsGrammar.cs
- TagElement.cs
- CharAnimationBase.cs
- WindowsProgressbar.cs
- MatrixCamera.cs
- _HTTPDateParse.cs
- GridEntry.cs
- TrackingCondition.cs
- InputProviderSite.cs
- ServiceDescriptionReflector.cs
- DataGridColumn.cs
- ObjectAnimationUsingKeyFrames.cs
- FormatVersion.cs
- Propagator.JoinPropagator.cs
- DynamicRendererThreadManager.cs
- SymLanguageVendor.cs
- ConfigXmlText.cs
- ToolBar.cs
- AmbiguousMatchException.cs
- SqlClientFactory.cs
- Vector3DCollectionValueSerializer.cs
- COM2ComponentEditor.cs
- ProfileServiceManager.cs
- FileVersionInfo.cs
- Attachment.cs
- ScrollEvent.cs
- ProcessHost.cs
- PathGeometry.cs
- WebPartConnectionCollection.cs
- CheckBoxField.cs
- SiteMapNodeItemEventArgs.cs
- FileAuthorizationModule.cs
- InternalControlCollection.cs
- XmlEventCache.cs
- TimersDescriptionAttribute.cs
- BinaryObjectInfo.cs
- HealthMonitoringSection.cs
- SecureStringHasher.cs
- PageContentCollection.cs