/// <summary> /// 信任状を文字列に変換する /// </summary> /// <param name="CredType"></param> /// <param name="CredInforgbHashOfCert"></param> /// <param name="MarshaledCredential"></param> /// <returns></returns> public static string MarshalCredential(CredMarshalType CredType, IntPtr Credential) { if (Interop.CredMarshalCredential(CredType, Credential, out var MarshaledCredential)) { using (var getter = new CriticalCredGetterHandle <string>(MarshaledCredential, Marshal.PtrToStringUni)) return(getter.Value); } var hresult = Marshal.GetHRForLastWin32Error(); var exception = Marshal.GetExceptionForHR(hresult); if (unchecked ((uint)hresult) == 0x80070032) { throw new NotSupportedException("not support.", exception); } throw exception; }
public static extern bool CredUnmarshalCredential(string marshaledCredential, out CredMarshalType credType, out IntPtr credential);
public BaseCredentialInfo(CredMarshalType Type, IntPtr Credential) { this.Type = Type; this.Credential = Credential; }
public static extern bool CredMarshalCredential(CredMarshalType credType, IntPtr credential, out IntPtr marshaledCredential);