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
- EventDrivenDesigner.cs
- sortedlist.cs
- GridViewCommandEventArgs.cs
- CompilerHelpers.cs
- UInt16Storage.cs
- ObjectDataSourceDisposingEventArgs.cs
- FaultContext.cs
- cookie.cs
- ResourceSet.cs
- ServicePoint.cs
- WindowsSysHeader.cs
- CodeTypeDeclaration.cs
- AbstractSvcMapFileLoader.cs
- ContentTextAutomationPeer.cs
- AtomMaterializer.cs
- SimpleMailWebEventProvider.cs
- ProxyFragment.cs
- WizardDesigner.cs
- _CommandStream.cs
- QilReplaceVisitor.cs
- CommentAction.cs
- StylusButton.cs
- Convert.cs
- ListenerTraceUtility.cs
- XmlSchemaObject.cs
- StackSpiller.Bindings.cs
- DefaultPropertyAttribute.cs
- DefaultValueTypeConverter.cs
- FrameworkRichTextComposition.cs
- AnnotationHelper.cs
- IsolatedStorageException.cs
- ExpressionConverter.cs
- MaterializeFromAtom.cs
- WebBrowserSiteBase.cs
- Scene3D.cs
- Label.cs
- ParserExtension.cs
- DefaultAutoFieldGenerator.cs
- SizeFConverter.cs
- PassportPrincipal.cs
- DBNull.cs
- Property.cs
- ZeroOpNode.cs
- PageRequestManager.cs
- DesignerSerializerAttribute.cs
- EndpointInfo.cs
- SqlCachedBuffer.cs
- PropertyFilterAttribute.cs
- RelationshipConstraintValidator.cs
- IIS7UserPrincipal.cs
- AssemblyBuilder.cs
- _TimerThread.cs
- CategoryAttribute.cs
- TreeNodeBinding.cs
- ProcessThread.cs
- SecurityManager.cs
- ExtendedProperty.cs
- XmlUtf8RawTextWriter.cs
- Viewport3DAutomationPeer.cs
- HttpResponseInternalWrapper.cs
- FileNameEditor.cs
- PolicyException.cs
- ADMembershipProvider.cs
- CommandHelper.cs
- HtmlControl.cs
- OracleTimeSpan.cs
- ConfigXmlWhitespace.cs
- Point3DConverter.cs
- ExtentKey.cs
- ContentIterators.cs
- PrintPreviewGraphics.cs
- ResXBuildProvider.cs
- _AutoWebProxyScriptHelper.cs
- AssemblyResourceLoader.cs
- GregorianCalendarHelper.cs
- SimpleTypeResolver.cs
- PeerName.cs
- TextSelectionHelper.cs
- KeyedQueue.cs
- RadioButtonPopupAdapter.cs
- IndependentlyAnimatedPropertyMetadata.cs
- DictionaryMarkupSerializer.cs
- TraceContext.cs
- MatcherBuilder.cs
- DataSourceCacheDurationConverter.cs
- ActivitySurrogate.cs
- CodeNamespaceImport.cs
- HashJoinQueryOperatorEnumerator.cs
- UxThemeWrapper.cs
- GenericArgumentsUpdater.cs
- DataGridHeaderBorder.cs
- Pen.cs
- BitVector32.cs
- DetailsViewDeleteEventArgs.cs
- BaseCodePageEncoding.cs
- AppDomainProtocolHandler.cs
- StrokeCollection.cs
- TypedServiceOperationListItem.cs
- Debug.cs
- SelectionEditingBehavior.cs