【发布时间】:2015-08-18 20:21:57
【问题描述】:
我有一个 asp.net web api 项目,它通过 web config 元素使用模拟来连接到我们的 SQL 数据库:
<identity impersonate="true"
userName="domain\user1"
password="password" />
这在 99.9% 的情况下都能完美运行。但是,有一个特定端点需要 SQL Server 中的额外权限。我想冒充第二个用户,让我们称它为 user2,而不是 user1 来处理这个特定的调用,然后为所有其他请求恢复到 user1。我相信模拟可以通过编程方式实现,但它可以与上述基于配置的方法一起使用,以便我可以通过编程方式覆盖(并随后恢复为默认)这个端点的模拟用户吗?
【问题讨论】:
-
一个不相关的问题:你为什么需要模仿?为什么不直接将应用池的身份设置为该用户?
-
如果此操作是用户可以随时执行的操作,请授予他们使用自己的帐户执行此操作的权限。如果它需要某种形式的限制/守门,那么用户不应该直接对数据进行更改。创建一个负责进行更改并允许用户连接到它的服务/进程。这样,新流程以更多的信誉运行,但专门用于限制对某些特定情况的访问
标签: asp.net asp.net-web-api asp.net-web-api2 impersonation