Problemy bezpieczeństwa WCF z nazwanymi potokami

Mam nieco skomplikowaną konfigurację, która oczywiście działa dobrze w XP, ale dusi się w Windows 7. Może wydawać się szaleństwem, ale wtedy miało to sens!

Mam aplikację WPF, która uruchamia się, a następnie uruchamia inną aplikację, która komunikuje się z urządzeniem zewnętrznym. Po uruchomieniu nawiązuje komunikację z nowym procesem za pomocą WCF (hostowanego przez nowy proces) za pośrednictwem nazwanego potoku (net.pipe). Wydaje się, że działa dobrze w każdym systemie operacyjnym.

Chciałem udostępnić niektóre funkcje aplikacji WPF zewnętrznie programowi wiersza poleceń, więc skonfigurowałem inną usługę WCF, tym razem hostowaną przez aplikację WPF i ponownie wystawiłem ją za pośrednictwem nazwanych potoków. Znowu to działa.

Następnie chciałem udostępnić funkcjonalność aplikacji WPF w Internecie. Teraz ważne jest, aby aplikacja WPF była uruchamiana ze zwykłego konta użytkownika, więc pomyślałem, że najlepszym sposobem na wykonanie tej pracy w systemie Windows 7 będzie utworzenie usługi systemu Windows, która zapewni część usługi sieciowej i sprawi, że będzie ona komunikować się z Aplikacja WPF za pośrednictwem tego samego potoku nazwanego, który działa dobrze dla wiersza poleceń. Zaimplementowałem to i działa dobrze na XP, ale dusi się w Windows 7. Problemwydaje się być przy próbie ustanowienia połączenia nazwanego potoku między usługą Windows a aplikacją WPF.

Jeśli uruchomię aplikację WPF jako administrator, działa poprawnie. Wydaje się więc, że problem z kontem, w którym działa usługa Windows, nie może komunikować się ze zwykłym kontem użytkownika, który obsługuje usługę WCF za pośrednictwem nazwanych potoków. Czy istnieje sposób na to, aby to działało? Wydaje się, że usługa WCF działająca na zwykłym koncie użytkownika może komunikować się za pomocą nazwanych potoków z inną aplikacją działającą na tym samym koncie, ale wydaje się, że nie może zrobić tego samego z innym kontem.

Co dziwne, odwrotność wydaje się działać. Usługa Windows w rzeczywistości ujawnia również usługę z nazwanym powiązaniem potoku (jest używana jako funkcja aktywacji, ponieważ usługa działa cały czas). Mogę połączyć się z aplikacją WPF do tej usługi bez żadnych problemów.

Moja wiedza na temat bezpieczeństwa jest nieco ograniczona. Czy ktoś może rzucić światło na to, co się dzieje?

questionAnswers(2)

yourAnswerToTheQuestion