Asp.net core ASP.NET核心SQL连接-模拟用户

Asp.net core ASP.NET核心SQL连接-模拟用户,asp.net-core,entity-framework-core,Asp.net Core,Entity Framework Core,我很难找到关于如何模拟用户并以该用户身份打开SqlConnection的文档 背景: DBA提供了一个可以访问数据库的Active Directory帐户。使用连接字符串时: “Server=Server\instance;Initial Catalog=mtdatabase;User ID=domain\User;Password=mypassword;” 我得到一个错误,用户是不允许的。使用集成安全性时,它会忽略指定的用户名和密码,并使用当前登录的用户(在本地调试时使用me) 如何使用代码中

我很难找到关于如何模拟用户并以该用户身份打开SqlConnection的文档

背景:
DBA提供了一个可以访问数据库的Active Directory帐户。使用连接字符串时:

“Server=Server\instance;Initial Catalog=mtdatabase;User ID=domain\User;Password=mypassword;”

我得到一个错误,用户是不允许的。使用集成安全性时,它会忽略指定的用户名和密码,并使用当前登录的用户(在本地调试时使用me)

如何使用代码中提供的信息模拟用户,以确保该信息用于打开连接

目前,我正在使用以下代码,尝试打开连接时失败:

[Route("api/[controller]")]
public class HomeController : Controller
{
    // GET: /<controller>/
    [HttpGet]
    public IEnumerable<string> Index()
    {
        string connString = "Server=server\\instance;Initial Catalog=mtdatabase; User ID=domain\\user; Password=mypassword;";

        using (var conn = new SqlConnection(connString))
        {
            conn.Open();
            conn.Close();
        }
        return new string[] { "value1", "value2" };
    }
}
[路由(“api/[控制器]”)]
公共类HomeController:控制器
{
//获取://
[HttpGet]
公共IEnumerable索引()
{
string connString=“服务器=服务器\\实例;初始目录=mtdatabase;用户ID=域\\用户;密码=我的密码;”;
使用(var conn=new SqlConnection(connString))
{
conn.Open();
康涅狄格州关闭();
}
返回新字符串[]{“value1”,“value2”};
}
}

如果我了解您的情况,您需要获取凭据并连接到SQL Server,我认为您需要在站点中设置windows身份验证,是否应用了此设置?没有。有几个问题。使用Windows身份验证是否仍然允许站点跨平台?当我只需要Sql就可以使用Windows身份验证时,是否有必要让整个站点使用Windows身份验证?Windows身份验证不包括Windows平台,但我认为如果在Windows上发布,您可以使用它,您读过这个问题吗?在.NET Core之前,您只需禁用匿名身份验证,启用Windows身份验证,并启用模拟(通过项目的web.config,或者如果部署到IIS,也可以在站点的身份验证设置中执行。).NET Core取消了模拟,因此这不再可能。他们确实提供了一个关于如何继续这样做的遗留解决方案,但实际上并不推荐,尤其是对于繁重的工作单元。最后模拟: