Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Tokens / WindowsSecurityToken.cs / 1305376 / WindowsSecurityToken.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.IdentityModel.Tokens { using System.Collections.Generic; using System.Collections.ObjectModel; using System.Security.Principal; using System.IdentityModel.Claims; using System.IdentityModel.Policy; using System.IdentityModel.Tokens; public class WindowsSecurityToken : SecurityToken, IDisposable { string authenticationType; string id; DateTime effectiveTime; DateTime expirationTime; WindowsIdentity windowsIdentity; bool disposed = false; public WindowsSecurityToken(WindowsIdentity windowsIdentity) : this(windowsIdentity, SecurityUniqueId.Create().Value) { } public WindowsSecurityToken(WindowsIdentity windowsIdentity, string id) : this(windowsIdentity, id, null) { } public WindowsSecurityToken(WindowsIdentity windowsIdentity, string id, string authenticationType) { DateTime effectiveTime = DateTime.UtcNow; Initialize( id, authenticationType, effectiveTime, DateTime.UtcNow.AddHours( 10 ), windowsIdentity, true ); } protected WindowsSecurityToken() { } protected void Initialize(string id, DateTime effectiveTime, DateTime expirationTime, WindowsIdentity windowsIdentity, bool clone) { Initialize( id, null, effectiveTime, expirationTime, windowsIdentity, clone ); } protected void Initialize(string id, string authenticationType, DateTime effectiveTime, DateTime expirationTime, WindowsIdentity windowsIdentity, bool clone) { if (windowsIdentity == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("windowsIdentity"); if (id == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("id"); this.id = id; this.authenticationType = authenticationType; this.effectiveTime = effectiveTime; this.expirationTime = expirationTime; this.windowsIdentity = clone ? SecurityUtils.CloneWindowsIdentityIfNecessary(windowsIdentity, authenticationType) : windowsIdentity; } public override string Id { get { return this.id; } } public string AuthenticationType { get { return this.authenticationType; } } public override DateTime ValidFrom { get { return this.effectiveTime; } } public override DateTime ValidTo { get { return this.expirationTime; } } public virtual WindowsIdentity WindowsIdentity { get { ThrowIfDisposed(); return this.windowsIdentity; } } public override ReadOnlyCollectionSecurityKeys { get { return EmptyReadOnlyCollection .Instance; } } public virtual void Dispose() { if (!this.disposed) { this.disposed = true; if (this.windowsIdentity != null) { this.windowsIdentity.Dispose(); this.windowsIdentity = null; } } } protected void ThrowIfDisposed() { if (this.disposed) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ObjectDisposedException(this.GetType().FullName)); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.IdentityModel.Tokens { using System.Collections.Generic; using System.Collections.ObjectModel; using System.Security.Principal; using System.IdentityModel.Claims; using System.IdentityModel.Policy; using System.IdentityModel.Tokens; public class WindowsSecurityToken : SecurityToken, IDisposable { string authenticationType; string id; DateTime effectiveTime; DateTime expirationTime; WindowsIdentity windowsIdentity; bool disposed = false; public WindowsSecurityToken(WindowsIdentity windowsIdentity) : this(windowsIdentity, SecurityUniqueId.Create().Value) { } public WindowsSecurityToken(WindowsIdentity windowsIdentity, string id) : this(windowsIdentity, id, null) { } public WindowsSecurityToken(WindowsIdentity windowsIdentity, string id, string authenticationType) { DateTime effectiveTime = DateTime.UtcNow; Initialize( id, authenticationType, effectiveTime, DateTime.UtcNow.AddHours( 10 ), windowsIdentity, true ); } protected WindowsSecurityToken() { } protected void Initialize(string id, DateTime effectiveTime, DateTime expirationTime, WindowsIdentity windowsIdentity, bool clone) { Initialize( id, null, effectiveTime, expirationTime, windowsIdentity, clone ); } protected void Initialize(string id, string authenticationType, DateTime effectiveTime, DateTime expirationTime, WindowsIdentity windowsIdentity, bool clone) { if (windowsIdentity == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("windowsIdentity"); if (id == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("id"); this.id = id; this.authenticationType = authenticationType; this.effectiveTime = effectiveTime; this.expirationTime = expirationTime; this.windowsIdentity = clone ? SecurityUtils.CloneWindowsIdentityIfNecessary(windowsIdentity, authenticationType) : windowsIdentity; } public override string Id { get { return this.id; } } public string AuthenticationType { get { return this.authenticationType; } } public override DateTime ValidFrom { get { return this.effectiveTime; } } public override DateTime ValidTo { get { return this.expirationTime; } } public virtual WindowsIdentity WindowsIdentity { get { ThrowIfDisposed(); return this.windowsIdentity; } } public override ReadOnlyCollection SecurityKeys { get { return EmptyReadOnlyCollection .Instance; } } public virtual void Dispose() { if (!this.disposed) { this.disposed = true; if (this.windowsIdentity != null) { this.windowsIdentity.Dispose(); this.windowsIdentity = null; } } } protected void ThrowIfDisposed() { if (this.disposed) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ObjectDisposedException(this.GetType().FullName)); } } } } // 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
- SqlWebEventProvider.cs
- EntityModelBuildProvider.cs
- FormatterServices.cs
- UInt32Converter.cs
- URI.cs
- HandoffBehavior.cs
- HttpListenerContext.cs
- Popup.cs
- DoubleLink.cs
- AssemblyHelper.cs
- HandleRef.cs
- XmlKeywords.cs
- Compilation.cs
- DefaultPrintController.cs
- FieldBuilder.cs
- OptionalRstParameters.cs
- WhereaboutsReader.cs
- InputLangChangeEvent.cs
- NodeFunctions.cs
- ServiceDefaults.cs
- WindowsPrincipal.cs
- _OSSOCK.cs
- PenContext.cs
- AutomationProperty.cs
- WCFBuildProvider.cs
- StatusBarAutomationPeer.cs
- AmbientLight.cs
- StylusPointPropertyId.cs
- AssemblySettingAttributes.cs
- ColumnMapVisitor.cs
- Mapping.cs
- ConnectionManagementElementCollection.cs
- LinqTreeNodeEvaluator.cs
- Rule.cs
- TextFormatterContext.cs
- PolygonHotSpot.cs
- AgileSafeNativeMemoryHandle.cs
- GenericsInstances.cs
- MainMenu.cs
- UIntPtr.cs
- DesignTimeHTMLTextWriter.cs
- SerializerDescriptor.cs
- Animatable.cs
- CounterSetInstanceCounterDataSet.cs
- SemanticResolver.cs
- IntSecurity.cs
- QueryOptionExpression.cs
- DateTimeFormatInfoScanner.cs
- ProcessModelSection.cs
- AutoGeneratedField.cs
- XamlSerializationHelper.cs
- DataSourceDesigner.cs
- DynamicPropertyReader.cs
- SQLInt32.cs
- DateTimeOffset.cs
- ColorConverter.cs
- SqlBooleanizer.cs
- CreateUserErrorEventArgs.cs
- CryptoKeySecurity.cs
- XPathEmptyIterator.cs
- DoubleKeyFrameCollection.cs
- IdentityHolder.cs
- diagnosticsswitches.cs
- SHA384.cs
- PackageDigitalSignatureManager.cs
- Evidence.cs
- FormatException.cs
- ExtensionSimplifierMarkupObject.cs
- CompatibleIComparer.cs
- SqlTypeSystemProvider.cs
- PageTheme.cs
- GridViewCommandEventArgs.cs
- UrlPropertyAttribute.cs
- ZoomPercentageConverter.cs
- ProcessModelInfo.cs
- EndpointDiscoveryMetadata11.cs
- KeyConverter.cs
- SemanticResolver.cs
- PartialList.cs
- SafeLocalMemHandle.cs
- BindingsCollection.cs
- FileCodeGroup.cs
- CodeCastExpression.cs
- TypeBuilderInstantiation.cs
- ConfigsHelper.cs
- GridItemProviderWrapper.cs
- StylusButtonEventArgs.cs
- SingleResultAttribute.cs
- ClientConfigurationHost.cs
- MemberJoinTreeNode.cs
- DbMetaDataFactory.cs
- RoutedEventConverter.cs
- QueryComponents.cs
- ManagedIStream.cs
- OracleBinary.cs
- PointAnimationUsingPath.cs
- DataGridViewComponentPropertyGridSite.cs
- WebPartHeaderCloseVerb.cs
- DataGridViewAutoSizeModeEventArgs.cs
- TdsRecordBufferSetter.cs