Added more disposed checks.
This commit is contained in:
@@ -33,15 +33,20 @@ namespace NSspi.Contexts
|
|||||||
|
|
||||||
SecureBuffer serverBuffer;
|
SecureBuffer serverBuffer;
|
||||||
SecureBufferAdapter serverAdapter;
|
SecureBufferAdapter serverAdapter;
|
||||||
|
|
||||||
if ( (serverToken != null) && ( this.ContextHandle.IsInvalid ) )
|
if( this.Disposed )
|
||||||
|
{
|
||||||
|
throw new ObjectDisposedException( "ClientContext" );
|
||||||
|
}
|
||||||
|
else if( ( serverToken != null ) && ( this.ContextHandle.IsInvalid ) )
|
||||||
{
|
{
|
||||||
throw new InvalidOperationException( "Out-of-order usage detected - have a server token, but no previous client token had been created." );
|
throw new InvalidOperationException( "Out-of-order usage detected - have a server token, but no previous client token had been created." );
|
||||||
}
|
}
|
||||||
else if ( (serverToken == null) && ( this.ContextHandle.IsInvalid == false ) )
|
else if( ( serverToken == null ) && ( this.ContextHandle.IsInvalid == false ) )
|
||||||
{
|
{
|
||||||
throw new InvalidOperationException( "Must provide the server's response when continuing the init process." );
|
throw new InvalidOperationException( "Must provide the server's response when continuing the init process." );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
outTokenBuffer = new SecureBuffer( new byte[12288], BufferType.Token );
|
outTokenBuffer = new SecureBuffer( new byte[12288], BufferType.Token );
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,11 @@ namespace NSspi.Contexts
|
|||||||
SecureBufferAdapter clientAdapter;
|
SecureBufferAdapter clientAdapter;
|
||||||
SecureBufferAdapter outAdapter;
|
SecureBufferAdapter outAdapter;
|
||||||
|
|
||||||
|
if( this.Disposed )
|
||||||
|
{
|
||||||
|
throw new ObjectDisposedException( "ServerContext" );
|
||||||
|
}
|
||||||
|
|
||||||
using ( clientAdapter = new SecureBufferAdapter( clientBuffer ) )
|
using ( clientAdapter = new SecureBufferAdapter( clientBuffer ) )
|
||||||
{
|
{
|
||||||
using ( outAdapter = new SecureBufferAdapter( outBuffer ) )
|
using ( outAdapter = new SecureBufferAdapter( outBuffer ) )
|
||||||
@@ -112,7 +117,11 @@ namespace NSspi.Contexts
|
|||||||
SecurityStatus status = SecurityStatus.InternalError;
|
SecurityStatus status = SecurityStatus.InternalError;
|
||||||
bool gotRef = false;
|
bool gotRef = false;
|
||||||
|
|
||||||
if( impersonating )
|
if( this.Disposed )
|
||||||
|
{
|
||||||
|
throw new ObjectDisposedException( "ServerContext" );
|
||||||
|
}
|
||||||
|
else if( impersonating )
|
||||||
{
|
{
|
||||||
throw new InvalidOperationException( "Cannot impersonate again while already impersonating." );
|
throw new InvalidOperationException( "Cannot impersonate again while already impersonating." );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -126,12 +126,19 @@ namespace NSspi.Credentials
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
QueryNameAttribCarrier carrier = new QueryNameAttribCarrier();
|
QueryNameAttribCarrier carrier;
|
||||||
|
SecurityStatus status;
|
||||||
SecurityStatus status = SecurityStatus.InternalError;
|
|
||||||
string name = null;
|
string name = null;
|
||||||
bool gotRef = false;
|
bool gotRef = false;
|
||||||
|
|
||||||
|
if( this.disposed )
|
||||||
|
{
|
||||||
|
throw new ObjectDisposedException( "Credential" );
|
||||||
|
}
|
||||||
|
|
||||||
|
status = SecurityStatus.InternalError;
|
||||||
|
carrier = new QueryNameAttribCarrier();
|
||||||
|
|
||||||
RuntimeHelpers.PrepareConstrainedRegions();
|
RuntimeHelpers.PrepareConstrainedRegions();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -185,6 +192,11 @@ namespace NSspi.Credentials
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
if( this.disposed )
|
||||||
|
{
|
||||||
|
throw new ObjectDisposedException( "Credential" );
|
||||||
|
}
|
||||||
|
|
||||||
return this.expiry;
|
return this.expiry;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -193,6 +205,11 @@ namespace NSspi.Credentials
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
if( this.disposed )
|
||||||
|
{
|
||||||
|
throw new ObjectDisposedException( "Credential" );
|
||||||
|
}
|
||||||
|
|
||||||
return this.safeCredHandle;
|
return this.safeCredHandle;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user