首页 > 解决方案 > 带有实体框架的 ASP.NET WebApi - 连接到不同用户下的数据库

问题描述

我在 ASP.NET WebAPI(Web 服务)中有一个项目,它为网站提供服务并使用实体框架连接到 SQL Server 数据库。

实体框架在一个登录下连接到数据库,该登录存储在config文件中。但是我必须以用户在网站上填写的登录名和密码连接到数据库,并在该用户下执行所有查询(用户必须在 SQL Server 上有自己的会话)。

谁能告诉我这是否可能?如果可能的话,我应该意识到这一点吗?

非常感谢!

标签: c#sql-serverentity-frameworkasp.net-web-api

解决方案


如果用户将请求中的用户名和密码发送到 WebAPI,那么您需要自己动态生成连接字符串,然后使用它来连接数据库。

其他选项,您可以在 webapi 上配置 kerberos 身份验证,然后根据 SYSTEM_USER 参数将一些逻辑添加到数据库中。或者根据 sql server 版本,您可以使用基于角色的安全性

https://docs.microsoft.com/en-us/sql/relational-databases/security/row-level-security?view=sql-server-2017


推荐阅读