问题描述: 当使用ASP.NET Core应用程序并使用实体框架作为ORM(对象关系映射)时,您可能会发现,在尝试使用集成安全登录SQL数据库时无法成功。
解决方案: 如果您的应用程序需要使用集成安全来连接到SQL数据库,则需要在连接字符串中使用“Integrated Security=True”参数。但是,当您使用Entity Framework时,您需要在数据库上下文构造函数中设置此选项才能使此选项生效。例如,下面是一个带有集成安全的连接字符串:
"Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;"
您可以在上下文构造函数中调用“UseSqlServer”方法,并将“Trusted_Connection”设置为“true”,以启用集成安全:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer("Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;"); }
如果您使用的是Windows身份验证,则您还需要将应用程序的应用程序池设置为使用Windows身份验证,以便应用程序能够使用正在运行的用户的身份进行身份验证。要执行此操作,请在Internet信息服务(IIS)管理器中选择应用程序池,右键单击并选择“高级设置”,然后将“启用Windows身份验证”设置为“True”。
这应该解决您在ASP.NET Core应用程序中使用实体框架时出现的集成安全问题。