Added a little helper to understand the meaning of a SecurityStatus. Don't store the SecurityStatus as an int; we don't need signed semantics and it just complicates comparisons and literals.

This commit is contained in:
antiduh
2014-06-24 21:10:29 +00:00
parent 970c0f2bfa
commit 766b16e93c

View File

@@ -20,49 +20,58 @@ namespace NSspi
#define SEC_E_NO_CREDENTIALS _HRESULT_TYPEDEF_(0x8009030EL) #define SEC_E_NO_CREDENTIALS _HRESULT_TYPEDEF_(0x8009030EL)
*/ */
public enum SecurityStatus : int public enum SecurityStatus : uint
{ {
// Success / Informational // Success / Informational
OK = 0x00000000, OK = 0x00000000,
ContinueNeeded = unchecked( (int)0x00090312 ), ContinueNeeded = 0x00090312,
CompleteNeeded = unchecked( (int)0x00090313 ), CompleteNeeded = 0x00090313,
CompAndContinue = unchecked( (int)0x00090314 ), CompAndContinue = 0x00090314,
ContextExpired = unchecked( (int)0x00090317 ), ContextExpired = 0x00090317,
CredentialsNeeded = unchecked( (int)0x00090320 ), CredentialsNeeded = 0x00090320,
Renegotiate = unchecked( (int)0x00090321 ), Renegotiate = 0x00090321,
// Errors // Errors
OutOfMemory = unchecked( (int)0x80090300 ), OutOfMemory = 0x80090300,
InvalidHandle = unchecked( (int)0x80090301 ), InvalidHandle = 0x80090301,
Unsupported = unchecked( (int)0x80090302 ), Unsupported = 0x80090302,
TargetUnknown = unchecked( (int)0x80090303 ), TargetUnknown = 0x80090303,
InternalError = unchecked( (int)0x80090304 ), InternalError = 0x80090304,
PackageNotFound = unchecked( (int)0x80090305 ), PackageNotFound = 0x80090305,
NotOwner = unchecked( (int)0x80090306 ), NotOwner = 0x80090306,
CannotInstall = unchecked( (int)0x80090307 ), CannotInstall = 0x80090307,
InvalidToken = unchecked( (int)0x80090308 ), InvalidToken = 0x80090308,
CannotPack = unchecked( (int)0x80090309 ), CannotPack = 0x80090309,
QopNotSupported = unchecked( (int)0x8009030A ), QopNotSupported = 0x8009030A,
NoImpersonation = unchecked( (int)0x8009030B ), NoImpersonation = 0x8009030B,
LogonDenied = unchecked( (int)0x8009030C ), LogonDenied = 0x8009030C,
UnknownCredentials = unchecked( (int)0x8009030D ), UnknownCredentials = 0x8009030D,
NoCredentials = unchecked( (int)0x8009030E ), NoCredentials = 0x8009030E,
MessageAltered = unchecked( (int)0x8009030F ), MessageAltered = 0x8009030F,
OutOfSequence = unchecked( (int)0x80090310 ), OutOfSequence = 0x80090310,
NoAuthenticatingAuthority = unchecked( (int)0x80090311 ), NoAuthenticatingAuthority = 0x80090311,
IncompleteMessage = unchecked( (int)0x80090318 ), IncompleteMessage = 0x80090318,
IncompleteCredentials = unchecked( (int)0x80090320 ), IncompleteCredentials = 0x80090320,
BufferNotEnough = unchecked( (int)0x80090321 ), BufferNotEnough = 0x80090321,
WrongPrincipal = unchecked( (int)0x80090322 ), WrongPrincipal = 0x80090322,
TimeSkew = unchecked( (int)0x80090324 ), TimeSkew = 0x80090324,
UntrustedRoot = unchecked( (int)0x80090325 ), UntrustedRoot = 0x80090325,
IllegalMessage = unchecked( (int)0x80090326 ), IllegalMessage = 0x80090326,
CertUnknown = unchecked( (int)0x80090327 ), CertUnknown = 0x80090327,
CertExpired = unchecked( (int)0x80090328 ), CertExpired = 0x80090328,
AlgorithmMismatch = unchecked( (int)0x80090331 ), AlgorithmMismatch = 0x80090331,
SecurityQosFailed = unchecked( (int)0x80090332 ), SecurityQosFailed = 0x80090332,
SmartcardLogonRequired = unchecked( (int)0x8009033E ), SmartcardLogonRequired = 0x8009033E,
UnsupportedPreauth = unchecked( (int)0x80090343 ), UnsupportedPreauth = 0x80090343,
BadBinding = unchecked( (int)0x80090346 ) BadBinding = 0x80090346
} }
public static class SecurityStatusExtensions
{
public static bool IsError( this SecurityStatus status )
{
return (uint)status > 0x80000000u;
}
}
} }