Как установить параметры web.config при самостоятельном размещении WebApi в качестве службы Windows TopShelf

У меня есть собственный веб-API, работающий как служба Windows с использованием TopShelf. У меня есть app.config для TopShelf, но нет web.config для моего веб-API. Если я добавлю web.config или добавлю настройки (веб-настройки) в app.config, оба будут игнорироваться моим веб-API.

Мне нужно установить следующее:

<system.web><identity impersonate="true" /></system.web>

но я понятия не имею, где его установить.


person Shumii    schedule 06.10.2014    source источник


Ответы (1)


Вы не размещаете свой веб-API в IIS, поэтому вам не нужен web.config.
Вы не можете использовать:

<system.web><identity impersonate="true" /></system.web>

поскольку это относится к ASP.NET (подробнее здесь< /а>).

Почему бы вам не установить свои учетные данные в конфигурации службы Windows => «Вход в систему»?

введите здесь описание изображения

Или, используя TopShelf, с помощью код:

HostFactory.New(x =>
{
    x.RunAs("username", "password");
});

Конечно, вы могли бы прочитать username и password из своего app.config и, может быть, зашифровать эти значения.

Если вы хотите выдать себя за другого пользователя, вы мало что можете сделать, кроме как использовать низкоуровневый API.
Здесь вы можете найти хороший объяснение/решение.

person LeftyX    schedule 06.10.2014
comment
Я хочу выдать себя за аутентифицированного пользователя, кем бы он ни был. - person Shumii; 07.10.2014
comment
Я сделал это с помощью кода, но вместо того, чтобы писать код, я бы предпочел установить его в web.config, но думаю, что вы правы; невозможно без IIS. Хотя я предполагаю, что вы все еще используете какой-то веб-сервер при самостоятельном размещении? У меня есть решение моей проблемы — использовать перехват для перехвата всех вызовов и обернуть их кодом олицетворения. - person Shumii; 07.10.2014