【发布时间】:2019-01-01 07:24:29
【问题描述】:
我正在使用 asp.net core mvc 2.1,需要调用一个旧的 asp.net 4.6 webapi 端点,该端点依赖于 Windows 身份验证来验证和授权用户的调用。
这个article 详细说明了如何模拟 Windows 身份,我得到了它的工作...但是该页面上的下一句话也说
请注意,RunImpersonated 不支持异步操作和 不应该用于复杂的场景。例如,包装整个 请求或中间件链不支持或不推荐。
我的问题:
如果它“不应该使用”,那么在 Windows 域中进行呼叫时模拟用户的首选方式是什么?在 asp.net 框架中,您可以简单地将 <identity impersonate="true" /> 节点添加到 web.config
【问题讨论】:
-
传出请求并不是一个复杂的场景,您还期望得到什么样的答案?你说你有它的工作。
-
@HenkHolterman 感谢您抽出宝贵时间回复... 1:我期待“什么是首选方式”这个问题的答案。 2:我认为“复杂场景”有点模糊,虽然我同意你的观点,但简单的 _httpClient.GetStringAsync("/api/program").Result 对我来说听起来并不复杂。 3. 我已经做了足够长的时间来知道“它在我的机器上工作”不是部署后的借口。如果答案是“不,那是首选”,我非常愿意接受。谢谢
-
impersonate a windows identity在 asp.net core 中没有其他解决方案。如果您需要impersonate,这是目前唯一的方法。 -
感谢@TaoZhou,添加为答案,以便我给予信任
-
@kevcoder 我完全同意你的观点,你有没有找到解决这个问题的受支持的解决方案?
标签: c# asp.net-core-mvc asp.net-core-2.1