<sect1 id="func-cygwin-logon_user">
<title>cygwin_logon_user</title>

<funcsynopsis><funcprototype>
<funcdef>extern "C" HANDLE
<function>cygwin_logon_user</function></funcdef>
<paramdef>const struct passwd *<parameter>passwd_entry</parameter></paramdef>
<paramdef>const char *<parameter>password</parameter></paramdef>
</funcprototype></funcsynopsis>

<para>Given a pointer ot a passwd entry of a user and a cleartext password,
returns a HANDLE to an impersonation token for this user which can be used
in a subsequent call to <function>cygwin_set_impersonation_token</function>
to impersonate that user.  This function can only be called from a process
which has the required NT user rights to perform a logon.</para>

<para>See also the chapter "New setuid concept" in the Cygwin user's guide.
</para>

<para>See also <link linkend="func-cygwin-set-impersonation-token">cygwin_set_impersonation_token</link></para>

</sect1>

<sect1 id="func-cygwin-set-impersonation-token">
<title>cygwin_set_impersonation_token</title>

<funcsynopsis><funcprototype>
<funcdef>extern "C" void
<function>cygwin_set_impersonation_token</function></funcdef>
<paramdef>const HANDLE <parameter>token</parameter></paramdef>
</funcprototype></funcsynopsis>

<para>Use this function to enable the token given as parameter as
impersonation token for the next call to <function>setuid</function> or
<function>seteuid</function>.  Use
<function>cygwin_set_impersonation_token</function> together with
<function>cygwin_logon_user</function> to impersonate users using
password authentication.</para>

<para>See also the chapter "New setuid concept" in the Cygwin user's guide.
</para>

<para>See also <link linkend="func-cygwin-logon_user">cygwin_logon_user</link></para>

</sect1>
