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
- UpdateRecord.cs
- Int32CollectionValueSerializer.cs
- LightweightCodeGenerator.cs
- AssemblyBuilderData.cs
- FacetValues.cs
- DateTimeFormatInfo.cs
- ListBase.cs
- WebResourceUtil.cs
- SQLStringStorage.cs
- RIPEMD160Managed.cs
- DictionaryKeyPropertyAttribute.cs
- ReferenceConverter.cs
- ModelFunction.cs
- RectAnimationBase.cs
- PackageDigitalSignature.cs
- FrameworkContentElement.cs
- ITextView.cs
- DetailsViewRow.cs
- BindingMAnagerBase.cs
- EditBehavior.cs
- VirtualizedContainerService.cs
- ExtendedPropertyInfo.cs
- NamespaceQuery.cs
- Thickness.cs
- ClientSettingsStore.cs
- HeaderElement.cs
- TTSEvent.cs
- SettingsBindableAttribute.cs
- WebPartAuthorizationEventArgs.cs
- ImageAnimator.cs
- DataServiceQueryOfT.cs
- BaseCAMarshaler.cs
- ValidatedControlConverter.cs
- BufferBuilder.cs
- ClientTargetSection.cs
- SecureUICommand.cs
- XamlSerializerUtil.cs
- SessionIDManager.cs
- GeneralTransformGroup.cs
- UIElement3DAutomationPeer.cs
- PrintPageEvent.cs
- FlowDocumentPage.cs
- MarginsConverter.cs
- AsyncResult.cs
- WindowsStatusBar.cs
- XmlParserContext.cs
- SQLGuid.cs
- EventMemberCodeDomSerializer.cs
- PerformanceCountersElement.cs
- XPathSingletonIterator.cs
- TypeSystemHelpers.cs
- AppModelKnownContentFactory.cs
- DataTable.cs
- MobileControlsSectionHelper.cs
- RestHandler.cs
- DocComment.cs
- TableItemStyle.cs
- SmtpDigestAuthenticationModule.cs
- TabPage.cs
- newinstructionaction.cs
- TrackingServices.cs
- webeventbuffer.cs
- CodeCommentStatementCollection.cs
- SafeFileMappingHandle.cs
- SocketElement.cs
- InstanceLockQueryResult.cs
- ClrProviderManifest.cs
- DesignBindingValueUIHandler.cs
- DiscoveryViaBehavior.cs
- XmlAttributeOverrides.cs
- RNGCryptoServiceProvider.cs
- PageParserFilter.cs
- ProcessHostServerConfig.cs
- AddInEnvironment.cs
- safelinkcollection.cs
- DiagnosticTraceRecords.cs
- ExpandedProjectionNode.cs
- ConfigurationElementCollection.cs
- RangeValidator.cs
- Int64Storage.cs
- XPathException.cs
- MarshalDirectiveException.cs
- BaseTemplateCodeDomTreeGenerator.cs
- AvTraceFormat.cs
- DoubleAnimationBase.cs
- Condition.cs
- KeyGesture.cs
- AuthenticationModuleElement.cs
- WorkflowApplicationCompletedEventArgs.cs
- EncodingStreamWrapper.cs
- XmlNamespaceManager.cs
- ProcessHost.cs
- TransportOutputChannel.cs
- CompilationSection.cs
- TypeUnloadedException.cs
- RequestQueue.cs
- CodeDirectoryCompiler.cs
- TraceHelpers.cs
- VarInfo.cs
- KeyConverter.cs