/// <summary> /// The NetrLogonSamLogonWithFlags method Supported in windows_xpwindows_server_2003, /// windows_vista, windows_server_2008, windows_7, and /// windows_server_7. handles logon requests for the SAM /// accounts. Opnum: 45 /// </summary> /// <param name="logonServer"> /// The custom RPC binding handle. /// </param> /// <param name="computerName"> /// The Unicode string that contains the NetBIOS name of /// the client computer calling this method. /// </param> /// <param name="authenticator"> /// A pointer to a NETLOGON_AUTHENTICATOR structure, /// that contains the client authenticator. /// </param> /// <param name="returnAuthenticator"> /// A pointer to a NETLOGON_AUTHENTICATOR structure, /// that contains the server return /// authenticator. /// </param> /// <param name="logonLevel"> /// A NETLOGON_LOGON_INFO_CLASS structure, /// that specifies the type of logon information /// passed in the LogonInformation parameter. /// </param> /// <param name="logonInformation"> /// A pointer to a NETLOGON_LEVEL structure, /// that describes the logon request information. /// </param> /// <param name="validationLevel"> /// A NETLOGON_VALIDATION_INFO_CLASS enumerated type, /// that contains the validation /// level requested by the client. /// </param> /// <param name="validationInformation"> /// A pointer to a NETLOGON_VALIDATION structure, /// that describes the user validation information /// returned to the client. The type of the NETLOGON_VALIDATION /// used is determined by the value of the ValidationLevel /// parameter. /// </param> /// <param name="authoritative"> /// A pointer to a char value representing a Boolean condition. /// FALSE is indicated by the value 0x00; TRUE SHOULD be /// indicated by the value 0x01 and MAY also be indicated /// by any nonzero value. Windows uses the value of 0x01 /// as the representation of TRUE and 0x00 for FALSE. This /// Boolean value indicates whether the validation information /// is final. This field is necessary because the request /// might be forwarded through multiple servers. A value /// of TRUE indicates that the validation information is /// final and MUST remain unchanged. /// </param> /// <param name="extraFlags"> /// A pointer to a set of bit flags that specify delivery /// settings. A flag is TRUE (or set) if its value is equal /// to 1. The value is constructed from zero or more bit /// flags from the following table. /// </param> /// <returns> /// The method returns 0x00000000 on success; /// otherwise, it returns a nonzero error code. /// </returns> public NtStatus NetrLogonSamLogonWithFlags( string logonServer, string computerName, _NETLOGON_AUTHENTICATOR? authenticator, ref _NETLOGON_AUTHENTICATOR? returnAuthenticator, _NETLOGON_LOGON_INFO_CLASS logonLevel, _NETLOGON_LEVEL? logonInformation, _NETLOGON_VALIDATION_INFO_CLASS validationLevel, out _NETLOGON_VALIDATION? validationInformation, out byte? authoritative, ref NrpcNetrLogonSamLogonExtraFlags? extraFlags) { uint? flags = (uint?)extraFlags; NtStatus status = rpc.NetrLogonSamLogonWithFlags( logonServer, computerName, authenticator, ref returnAuthenticator, logonLevel, logonInformation, validationLevel, out validationInformation, out authoritative, ref flags); context.ConnectionStatus = status; extraFlags = (NrpcNetrLogonSamLogonExtraFlags?)flags; return status; }
/// <summary> /// The NetrLogonSamLogonEx method Supported in windows_2000_server, /// windows_xp, windows_server_2003, windows_vista, windows_server_2008, /// windows_7, and windows_server_7. provides an extension /// to NetrLogonSamLogon that accepts an extra flags parameter /// and uses Secure RPC ([MS-RPCE]) instead of /// Netlogon authenticators. This method handles logon /// requests for the SAM accounts and allows for generic /// pass-through authentication. /// For more information about fields and structures /// used by Netlogon pass-through methods. /// Opnum: 39 /// </summary> /// <param name="contextHandle"> /// A primitive RPC handle that identifies a particular /// client/server binding. /// </param> /// <param name="logonServer"> /// The null-terminated Unicode string that contains the /// NetBIOS name of the server that will handle the logon /// request. /// </param> /// <param name="computerName"> /// The null-terminated Unicode string that contains the /// NetBIOS name of the client computer sending the logon /// request. /// </param> /// <param name="logonLevel"> /// A NETLOGON_LOGON_INFO_CLASS structure, /// that specifies the type of the logon information /// passed in the LogonInformation parameter. /// </param> /// <param name="logonInformation"> /// A pointer to a NETLOGON_LEVEL structure, /// that describes the logon request information. /// </param> /// <param name="validationLevel"> /// A NETLOGON_VALIDATION_INFO_CLASS enumerated type, /// that contains the validation /// level requested by the client. /// </param> /// <param name="validationInformation"> /// A pointer to a NETLOGON_VALIDATION structure, /// that describes the user validation information /// returned to the client. The type of the NETLOGON_VALIDATION /// used is determined by the value of the ValidationLevel /// parameter. /// </param> /// <param name="authoritative"> /// A pointer to a char value that represents a Boolean /// condition. FALSE is indicated by the value 0x00, and /// TRUE SHOULDwindows uses the value 0x01 as the representation /// of TRUE and 0x00 for FALSE. be indicated by the value /// 0x01 and MAY also be indicated by any nonzero value. /// This Boolean value indicates whether the validation /// information is final. This field is necessary because /// the request might be forwarded through multiple servers. /// The value TRUE indicates that the validation information /// is final and MUST remain unchanged. The Authoritative /// parameter indicates whether the response to this call /// is final or if the same request can be sent to another /// server. The value SHOULD be set to FALSE if the server /// encounters a transient error, and the client can resend /// the request to another server. If the same request /// is known to fail in all subsequent requests, the server /// SHOULD return TRUE. /// </param> /// <param name="extraFlags"> /// A pointer to a set of bit flags that specify delivery /// settings. A flag is TRUE (or set) if its value is equal /// to 1. Output flags MUST be the same as input. The value /// is constructed from zero or more bit flags from the /// following table. /// </param> /// <returns> /// The method returns 0x00000000 on success; /// otherwise, it returns a nonzero error code. /// </returns> public NtStatus NetrLogonSamLogonEx( IntPtr contextHandle, string logonServer, string computerName, _NETLOGON_LOGON_INFO_CLASS logonLevel, _NETLOGON_LEVEL? logonInformation, _NETLOGON_VALIDATION_INFO_CLASS validationLevel, out _NETLOGON_VALIDATION? validationInformation, out byte? authoritative, ref NrpcNetrLogonSamLogonExtraFlags? extraFlags) { uint? flags = (uint?)extraFlags; NtStatus status = rpc.NetrLogonSamLogonEx( contextHandle, logonServer, computerName, logonLevel, logonInformation, validationLevel, out validationInformation, out authoritative, ref flags); context.ConnectionStatus = status; extraFlags = (NrpcNetrLogonSamLogonExtraFlags?)flags; return status; }