Added DeleteCredential(LUID) for Windows
This commit is contained in:
parent
4ac1494f79
commit
dc46d381cc
@ -37,6 +37,10 @@ namespace Novell.Casa
|
||||
public static uint USERNAME_TYPE_LDAP_DN_F = 0x00000004;
|
||||
public static uint USERNAME_TYPE_EMAIL_F = 0x00000008;
|
||||
public static uint USERNAME_TYPE_OTHER_F = 0x00000010;
|
||||
|
||||
private static uint SSCS_CRED_TYPE_BASIC_F = 0x00000001;
|
||||
private static uint SSCS_CRED_TYPE_BINARY_F = 0x00000002;
|
||||
private static uint SSCS_CRED_TYPE_SERVER_F = 0x00000004;
|
||||
|
||||
public MiCasa()
|
||||
{
|
||||
@ -149,7 +153,26 @@ namespace Novell.Casa
|
||||
string sSharedSecretID)
|
||||
{
|
||||
NativeCalls.RemoveCredential(ssFlags, sAppSecretID, sSharedSecretID);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void DeleteCredential(
|
||||
uint ssFlags,
|
||||
string sAppSecretID,
|
||||
string sSharedSecretID)
|
||||
{
|
||||
DeleteCredential(ssFlags, sAppSecretID, sSharedSecretID, null);
|
||||
}
|
||||
|
||||
|
||||
public static void DeleteCredential(
|
||||
uint ssFlags,
|
||||
string sAppSecretID,
|
||||
string sSharedSecretID,
|
||||
WinLuid luid)
|
||||
{
|
||||
NativeCalls.DeleteCredential(ssFlags, sAppSecretID, sSharedSecretID, SSCS_CRED_TYPE_BASIC_F, luid);
|
||||
}
|
||||
|
||||
|
||||
public static bool IsSecretPersistent(
|
||||
|
@ -169,6 +169,16 @@ namespace Novell.Casa
|
||||
[In, Out] SSCS_EXT_T ext
|
||||
);
|
||||
|
||||
[DllImport(NDK_LIBRARY)]
|
||||
internal static extern int miCASADeleteCredential
|
||||
(
|
||||
[In] uint ssFlags,
|
||||
[In] SSCS_SECRET_ID_T appSecretID,
|
||||
[In] SSCS_SECRET_ID_T sharedSecretID,
|
||||
[In] uint iCredentialType,
|
||||
[In, Out] SSCS_EXT_T ext
|
||||
);
|
||||
|
||||
[DllImport(NDK_LIBRARY)]
|
||||
internal static extern int miCASAIsSecretPersistent
|
||||
(
|
||||
@ -456,7 +466,8 @@ namespace Novell.Casa
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// deprecated because of multiple credential types.
|
||||
// use miCASADeleteCredential
|
||||
internal static void RemoveCredential(
|
||||
uint ssFlags,
|
||||
string sAppSecretID,
|
||||
@ -486,6 +497,54 @@ namespace Novell.Casa
|
||||
|
||||
}
|
||||
|
||||
internal static void DeleteCredential(
|
||||
uint ssFlags,
|
||||
string sAppSecretID,
|
||||
string sSharedSecretID,
|
||||
uint iCredType,
|
||||
WinLuid luid)
|
||||
{
|
||||
if (sAppSecretID == null || sAppSecretID.Length == 0)
|
||||
throw new MiCasaException(MiCasaException.NSSCS_E_INVALID_PARAM);
|
||||
|
||||
int rcode;
|
||||
SSCS_SECRET_ID_T appSecretID = new SSCS_SECRET_ID_T();
|
||||
appSecretID.id = sAppSecretID;
|
||||
appSecretID.len = sAppSecretID.Length + 1;
|
||||
|
||||
SSCS_SECRET_ID_T sharedID = new SSCS_SECRET_ID_T();
|
||||
if (sSharedSecretID != null)
|
||||
{
|
||||
sharedID.len = sSharedSecretID.Length + 1;
|
||||
sharedID.id = sSharedSecretID;
|
||||
}
|
||||
|
||||
SSCS_EXT_T ext = new SSCS_EXT_T();
|
||||
LUID sluid;
|
||||
if ((luid != null) &&
|
||||
((luid.GetHighPart() != 0) || (luid.GetLowPart() != 0)))
|
||||
{
|
||||
// allocate a structure to marshal
|
||||
sluid = new LUID();
|
||||
sluid.luidHigh = luid.GetHighPart();
|
||||
sluid.luidLow = luid.GetLowPart();
|
||||
|
||||
ext.extID = 1;
|
||||
ext.version = 1;
|
||||
ext.ext = Marshal.AllocHGlobal(Marshal.SizeOf(sluid));
|
||||
|
||||
Marshal.StructureToPtr(sluid, ext.ext, false);
|
||||
}
|
||||
|
||||
rcode = miCASADeleteCredential(ssFlags, appSecretID, sharedID, iCredType, ext);
|
||||
|
||||
if (rcode != 0)
|
||||
{
|
||||
throw new MiCasaException(rcode);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
internal static bool IsSecretPersistent(uint ssFlags, string id)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user