Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com X-Authenticated: #312426 Message-ID: <42DCFCE6.9010505@gmx.net> Date: Tue, 19 Jul 2005 15:15:18 +0200 From: "H. Henning Schmidt" Reply-To: henning AT hhschmidt DOT de User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206) MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: verify login info on Windows References: <42DC0DA5 DOT 6060402 AT gmx DOT net> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 Igor Pechtchanski wrote: >On Mon, 18 Jul 2005, H. Henning Schmidt wrote: > > > >>I am developing a server application that accepts logins from a client >>over a proprietary protocol. >>I want to let clients login (username/password) before allowing anything >>else. I want to let them use username/password information as it is >>stored in the regular system user database, so I do not need to maintain >>another such database. On Unix this would be /etc/passwd or >>/etc/shadoww and the associated libraray calls. >> >>However, on my Cygwin box, the /etc/passwd (as created by mkpasswd) does >>not contain the password. Instead the appropriate field reads >>unused_by_nt. After googling along for a while I have understood that >>this is done so that the real login/security info can be maintained by >>the regular windows system. Fine. But how do I get to it? I have not >>found any example/explanation that answers this question: >> >>given two const char* variables user and password, how can I find out if >>this combination is a valid login on this current Windows/Cygwin box? >> >>This might be a pute Windows issue (as oposed to Cygwin) ... however, >>with a Linux-only knowledge of system calls, I have no clue how to >>approach this anyways. >> >> > >How about looking at the source of some program that actually does such >authentication? Searching for the string "cygwin" in auth-passwd.c in >openssh sources is one approach. > Igor > > Thank you for this hint. So cygwin_logon_user() is the call I need. Apparently this is one of the hidden cygwin_*() functions that are *not* documented in the API docs (http://cygwin.com/cygwin-api/cygwin-api.html). Easy enough to use though. ;Henning -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/