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
- ProfileProvider.cs
- WebPartVerbCollection.cs
- QilScopedVisitor.cs
- LabelExpression.cs
- SerializationInfoEnumerator.cs
- SequenceNumber.cs
- AdapterDictionary.cs
- ExternalFile.cs
- PreservationFileReader.cs
- DeleteCardRequest.cs
- TextEditorLists.cs
- SqlMethods.cs
- Relationship.cs
- SystemIPGlobalProperties.cs
- RtfToXamlLexer.cs
- CustomAttribute.cs
- ZipIOLocalFileBlock.cs
- XmlUnspecifiedAttribute.cs
- AnnotationElement.cs
- EndpointAddressElementBase.cs
- TraceLog.cs
- BuildProvider.cs
- CachedRequestParams.cs
- DataServiceContext.cs
- XmlObjectSerializerReadContext.cs
- ViewStateModeByIdAttribute.cs
- StateMachineHistory.cs
- Pen.cs
- SqlBulkCopyColumnMappingCollection.cs
- AlphabetConverter.cs
- TypeNameHelper.cs
- SingleStorage.cs
- SafeNativeMethods.cs
- DataGridTextBoxColumn.cs
- XPathNodeHelper.cs
- BrowserCapabilitiesFactoryBase.cs
- ChangesetResponse.cs
- FontConverter.cs
- TransactionState.cs
- FrameworkContentElementAutomationPeer.cs
- SqlClientMetaDataCollectionNames.cs
- IntSecurity.cs
- __ConsoleStream.cs
- Exceptions.cs
- ConstantSlot.cs
- SharedUtils.cs
- ClientSideProviderDescription.cs
- TrustManagerMoreInformation.cs
- CharacterMetrics.cs
- DispatcherExceptionFilterEventArgs.cs
- MethodToken.cs
- InstanceKeyNotReadyException.cs
- EntityDataSourceViewSchema.cs
- RepeaterItem.cs
- ProjectionPathSegment.cs
- ChannelManager.cs
- CodeSubDirectoriesCollection.cs
- ColorInterpolationModeValidation.cs
- LinearGradientBrush.cs
- OutputChannel.cs
- SchemaExporter.cs
- QueryOpeningEnumerator.cs
- SafeRegistryHandle.cs
- DocumentPageViewAutomationPeer.cs
- DataGridColumnCollection.cs
- WaitForChangedResult.cs
- ASCIIEncoding.cs
- DataGridTemplateColumn.cs
- ControlCollection.cs
- XhtmlBasicTextViewAdapter.cs
- PnrpPermission.cs
- InternalSendMessage.cs
- HostingEnvironmentWrapper.cs
- PropertyTabChangedEvent.cs
- TypeForwardedToAttribute.cs
- Inflater.cs
- ThreadAbortException.cs
- Axis.cs
- XmlElementList.cs
- ProgressiveCrcCalculatingStream.cs
- HtmlImage.cs
- DataGridViewCellValidatingEventArgs.cs
- PeerNameResolver.cs
- ProcessInfo.cs
- ReversePositionQuery.cs
- ProxyWebPartConnectionCollection.cs
- DataGridViewTextBoxEditingControl.cs
- StyleCollectionEditor.cs
- ListControl.cs
- BamlLocalizableResourceKey.cs
- SingleObjectCollection.cs
- FileChangeNotifier.cs
- WebBodyFormatMessageProperty.cs
- DesignerAdapterUtil.cs
- FormatConvertedBitmap.cs
- Attributes.cs
- CachedFontFace.cs
- EntityAdapter.cs
- Hex.cs
- DefaultAsyncDataDispatcher.cs