如何在dotnet核心1.1中使用模拟?

时间:2017-06-22 12:36:06

标签: c# sql-server .net-core

我正在尝试使用Trusted_Connection = True验证我的MSSQL连接。为了实现这一点,我安装了NuGet包Impersonate.AspNetCore.Windows (Impersonate),并在我的Startup.cs中进行设置,如下所示:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    app.UseWindowsImpersonation(options => {
        options.Enabled = true;
    });
}

在我的Program.cs中,我添加了UseIISIntegration来设置要在IIS中托管的.net核心:

public static void Main(string[] args)
    {
        var host = new WebHostBuilder()
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>()
            .Build();

        host.Run();
    }

在IIS中,我创建了一个新网站,将ApplicationPool基本设置更改为No managed CodeClassic管道模式。在高级设置中,我将处理模型下的Identity设置为现有的Windows用户帐户:

advanced application pool settings

当我在连接字符串中使用Trusted_Connection=True时,应用程序无法验证我与SQL服务器的连接:

"ConnectionStrings": {
    "DashboardDatabase": "Server=<SOME_SERVER>;Database=<SOME_DATABASE>;Trusted_Connection=True"
}

(当然,其中和替换为服务器和数据库的实际名称)。

我的问题是:我忘记了什么吗?

1 个答案:

答案 0 :(得分:0)

我和你有完全一样的设置,我让它运转起来。您是否已将forwardWindowsAuthToken="true"添加到web.config文件中?如果还没有,您可能必须在应用程序的根文件夹中创建web.config文件。请参阅package repo

仅供参考我的连接字符串中也有Integrated Security=true;,不确定是否需要。