2

我有一个使用 TopShelf 作为 Windows 服务运行的自托管 Web api。我有一个适用于 TopShelf 的 app.config,但没有适用于我的 web api 的 web.config。如果我向 app.config 添加 web.config 或添加设置(web 设置),我的 web api 都会忽略它们。

我需要设置以下内容:

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

但我不知道在哪里设置它。

4

1 回答 1

0

您没有在其中托管您的 Web api,IIS因此您不需要web.config.
您不能使用:

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

因为它特定于ASP.NET(更多细节在这里)。

为什么不在 Windows 服务 =>“登录”配置中设置凭据?

在此处输入图像描述

或者,使用TopShelf,通过代码

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

当然,您可以从您的数据中读取username和加密这些值。passwordapp.config

如果你想冒充另一个用户,除了使用一些低级 API 之外,你无能为力。
在这里你可以找到一个很好的解释/解决方案

于 2014-10-06T19:40:47.833 回答