我正在开发一个 Intranet 应用程序,其中我从 ASP.NET WEB API 调用 SAP 服务,目前它可以与具有预定义用户名和密码的
HttpBasicAuthentication
正常工作,但现在的要求是获取记录的在windows中通过ASP.NET WEB API获取用户的用户名和密码并传递给SAP服务进行身份验证?谁能帮我解决这个问题吗?
1) HttpBasicAuthentication 在这种情况下不适用。
2) 通过 web.config 标签使用身份模拟(参考Identity Impersonate)以在 api 中获取当前用户的身份。然而,这“仅”适用于基于 Intranet 的应用程序,不适用于互联网上的应用程序。对于基于互联网的,您需要实现 Kerberos 桥接(有点复杂)的概念。 3)在app.start方法中,您需要将当前主体设置为windows主体。
然后您就可以获得用户详细信息..
请注意,您
不会拥有可用的用户密码,因为操作系统会非常非常安全地保护该密码。您可以获得用户的 Kerberos 令牌,您的目标系统可以通过该令牌对正在使用的 AD 进行身份验证。