Маленькая помощь с сервисом Windows - PullRequest
1 голос
/ 09 августа 2011

(c #, желательно .net Framework 2.0)

Hello.

Это практический и технический вопрос ... вы были предупреждены. :)

У меня есть служба Windows, которая требует, чтобы каждый пользователь предоставлял логин для онлайн-службы. Давайте представим, что у нас есть два пользователя a и b.

a запускает процесс установки, который в конце запрашивает учетные данные для входа в онлайн-службу. Хранит его локально и звонит, когда служба запускается, она знает пользователя.

b приходит, выходит из системы, входит в систему. Служба замечает нового пользователя, проверяет, есть ли у него данные для входа, выясняет, что его нет.

Я думал, что смогу использовать Process.Start для запуска приложения Windows. Нету. Так что я погуглил, и похоже, что если я напишу кучу кода (показанного здесь как CreateProcessAsUser), это возможно, но не рекомендуется делать это.

Так ... что мне делать? Рад за любые технические или практические решения.

1 Ответ

1 голос
/ 09 августа 2011

Показ любого пользовательского интерфейса изнутри службы не только не рекомендуется, но даже явно запрещен на некоторых платформах Windows (на мой взгляд, Windows Server 2008).
Общий подход к этой задаче состоит в разработке двух независимых модулей, службы Windows и приложения с графическим интерфейсом, которое связывается со службами с использованием одной из многих доступных схем IPC, в зависимости от сложности передаваемых данных.Петлевой WCF (веб-сервис), например, может быть хорошим подходом.
При правильной реализации это решение также будет работать в сложных сценариях, таких как несколько сеансов служб терминалов.

...