У меня есть приложение C # (WPF) (мое собственное творение), которому нужно открыть порт на компьютере. Это означает, что для запуска требуются права администратора. Приложение в настоящее время не подписано, и каждый раз, когда я запускаю его, оно вызывает приглашение UAC, спрашивающее, хочу ли я, чтобы эта программа от неизвестного издателя внесла изменения в мой компьютер.
Мне было интересно, почему Firefox не вызывает предупреждение UAC. В конце концов, он тоже должен открыть порт, чтобы иметь доступ к Интернету. Это потому, что Firefox - это нативное приложение?
requestedExecutionLevel level="requireAdministrator"
в манифесте приложения. Я должен был сделать это, потому что я использую,ServiceHost.AddServiceEndpoint
чтобы открыть порт, и этот вызов не выполняется, если приложение не запускается от имени администратора.Ответы:
Ваша программа открывает порт для прослушивания входящих соединений. Firefox этого не делает - он подключается к серверу.
Исходящие соединения также используют локальный эфемерный порт, но он неявно открывается только для этого конкретного соединения (см. Межсетевой экран с отслеживанием состояния ).
источник