You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,119 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// 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<SecurityKey> SecurityKeys
|
||||
{
|
||||
get { return EmptyReadOnlyCollection<SecurityKey>.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));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user