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
- ToolStripEditorManager.cs
- HttpListenerResponse.cs
- xmlglyphRunInfo.cs
- FontResourceCache.cs
- URLAttribute.cs
- HtmlInputCheckBox.cs
- WindowsScrollBar.cs
- MenuItemAutomationPeer.cs
- SqlDelegatedTransaction.cs
- TemplateBindingExpression.cs
- CharacterMetrics.cs
- HttpListenerRequest.cs
- ControlValuePropertyAttribute.cs
- CodeGeneratorAttribute.cs
- MimeTypeAttribute.cs
- TraceLog.cs
- SQLByteStorage.cs
- TableLayoutCellPaintEventArgs.cs
- SettingsPropertyCollection.cs
- CodeCommentStatementCollection.cs
- ImageMap.cs
- DictionaryEditChange.cs
- WebHeaderCollection.cs
- TemplateContent.cs
- UrlMappingCollection.cs
- LocalTransaction.cs
- SplineKeyFrames.cs
- AdornedElementPlaceholder.cs
- NonDualMessageSecurityOverHttpElement.cs
- StickyNote.cs
- AnnotationHighlightLayer.cs
- Sentence.cs
- AppSecurityManager.cs
- XmlObjectSerializerReadContextComplexJson.cs
- X509Extension.cs
- ExceptionRoutedEventArgs.cs
- ADMembershipProvider.cs
- PathGradientBrush.cs
- FrameSecurityDescriptor.cs
- Lasso.cs
- ClusterUtils.cs
- DataGridRelationshipRow.cs
- TypeConstant.cs
- WebPartTransformer.cs
- GridViewItemAutomationPeer.cs
- entitydatasourceentitysetnameconverter.cs
- TextBox.cs
- SafeMemoryMappedFileHandle.cs
- TextProviderWrapper.cs
- XmlCharacterData.cs
- ImageIndexConverter.cs
- HotCommands.cs
- FormsAuthenticationEventArgs.cs
- ObjectListComponentEditor.cs
- RowCache.cs
- Color.cs
- VScrollProperties.cs
- XmlBinaryReader.cs
- LogicalExpr.cs
- KeyValueConfigurationElement.cs
- DateTimeValueSerializerContext.cs
- AnimationException.cs
- TextFormatterImp.cs
- TextFormatterImp.cs
- SemanticBasicElement.cs
- DecimalAnimationUsingKeyFrames.cs
- FixedTextView.cs
- StaticSiteMapProvider.cs
- ExpressionVisitor.cs
- NameValueSectionHandler.cs
- SystemResourceHost.cs
- QilInvokeLateBound.cs
- WebPartAddingEventArgs.cs
- SectionRecord.cs
- ApplyImportsAction.cs
- ProgressBarRenderer.cs
- URLString.cs
- ConditionalWeakTable.cs
- ImmComposition.cs
- ConsumerConnectionPoint.cs
- SQLInt32.cs
- WithStatement.cs
- messageonlyhwndwrapper.cs
- BordersPage.cs
- DataObjectMethodAttribute.cs
- SecurityPermission.cs
- QueryAccessibilityHelpEvent.cs
- CommonRemoteMemoryBlock.cs
- DataSourceCacheDurationConverter.cs
- TransactionProtocolConverter.cs
- KeyInstance.cs
- FloaterParaClient.cs
- SmtpMail.cs
- UrlMappingsSection.cs
- Emitter.cs
- BamlLocalizabilityResolver.cs
- Int32AnimationBase.cs
- StyleConverter.cs
- TextDecorationUnitValidation.cs
- XmlLanguage.cs