I implemented a web page (ASP .NET, VB) to start/stop a Windows service.
I used impersonification, as described here: http://support.microsoft.com/kb/306158
In my case, both LOGON32_LOGON_INTERACTIVE and LOGON32_LOGON_SERVICE don't work.
However, LOGON32_LOGON_NETWORK works for me. Note that the user has admin privilege therefore is able to start/stop the windows service.