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
- PropertyDescriptorComparer.cs
- BasicHttpBindingElement.cs
- SctClaimDictionary.cs
- ThicknessConverter.cs
- ExpressionVisitorHelpers.cs
- MsmqChannelListenerBase.cs
- KoreanCalendar.cs
- CachedTypeface.cs
- ScriptingAuthenticationServiceSection.cs
- ClientViaElement.cs
- RangeBase.cs
- RuleSetReference.cs
- DesignerHost.cs
- ImageListImageEditor.cs
- ConvertersCollection.cs
- ActivityTypeDesigner.xaml.cs
- MetadataUtilsSmi.cs
- FontFamily.cs
- CodeAttributeDeclaration.cs
- ReliableReplySessionChannel.cs
- CodeCatchClauseCollection.cs
- XsdBuilder.cs
- SizeAnimationBase.cs
- StringConcat.cs
- DynamicAttribute.cs
- ConfigXmlDocument.cs
- NetPeerTcpBindingCollectionElement.cs
- BulletedListEventArgs.cs
- _RequestCacheProtocol.cs
- XsdCachingReader.cs
- DeploymentExceptionMapper.cs
- Missing.cs
- BuildProviderUtils.cs
- BindingGroup.cs
- ObjectListFieldsPage.cs
- XmlnsCompatibleWithAttribute.cs
- MsmqTransportSecurity.cs
- SymbolTable.cs
- DocumentViewerBaseAutomationPeer.cs
- ConfigurationException.cs
- UnionCqlBlock.cs
- SqlDataRecord.cs
- InputLanguageCollection.cs
- InfiniteTimeSpanConverter.cs
- DbQueryCommandTree.cs
- DataListItemCollection.cs
- HelpKeywordAttribute.cs
- DesignerActionUI.cs
- EncodingStreamWrapper.cs
- HttpResponseInternalWrapper.cs
- DesignerLinkAdapter.cs
- DBCommand.cs
- DataListCommandEventArgs.cs
- XmlName.cs
- OLEDB_Util.cs
- XmlHelper.cs
- FlowDocumentPageViewerAutomationPeer.cs
- DataGridTableStyleMappingNameEditor.cs
- HandoffBehavior.cs
- FileRegion.cs
- FontNamesConverter.cs
- CheckBoxStandardAdapter.cs
- ResponseBodyWriter.cs
- DetailsViewRowCollection.cs
- LineSegment.cs
- FamilyCollection.cs
- DockProviderWrapper.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- BitStack.cs
- HandlerMappingMemo.cs
- TcpDuplicateContext.cs
- HelpInfo.cs
- ProcessModelInfo.cs
- TriState.cs
- RtfNavigator.cs
- RuleRef.cs
- PointIndependentAnimationStorage.cs
- ConfigurationPropertyAttribute.cs
- SessionParameter.cs
- DataListCommandEventArgs.cs
- TreeView.cs
- ConnectorSelectionGlyph.cs
- cache.cs
- ArcSegment.cs
- HttpValueCollection.cs
- DoubleLinkList.cs
- TakeQueryOptionExpression.cs
- ButtonFieldBase.cs
- _DisconnectOverlappedAsyncResult.cs
- KeyboardNavigation.cs
- LoggedException.cs
- DescendantQuery.cs
- xdrvalidator.cs
- QueryCacheKey.cs
- ComponentEditorPage.cs
- TargetConverter.cs
- GroupBoxAutomationPeer.cs
- ChildrenQuery.cs
- Geometry.cs
- BaseDataBoundControl.cs