我有一个常规的ASP .NET Web应用程序,我使用App Services将其部署到Azure。部署后,我启用了App Service身份验证并配置了Azure Active Directory。这使我能够发布我的Web应用程序,并进行身份验证,因此只有Active Directory中的人才能登录。
另一方面,我部署了一个ASP .NET Web API作为云服务。Web应用程序应该调用Web API(从SQL数据库加载一些数据并返回)以加载一些信息,然后在UI中显示信息。但是,当我调用API时,Azure Active Directory凭据未从Web应用程序传递到Web API。
当Web应用程序调用Web API时,我如何获取Azure Active Directory域\用户信息?可能我的调用API的函数完全错误吗?
以下是Web应用程序中调用Web API端点的一些代码。
public string GetStringAsync(string endPoint)
{
HttpClientHandler handler = new HttpClientHandler
{
UseDefaultCredentials = true
};
handler.PreAuthenticate = true;
using (HttpClient client = new HttpClient(handler))
{
return client.GetStringAsync(endPoint).Result;
}
}
但是当我尝试在调用API时获取用户名时,得到的是一个空字符串。以下是我捕获调用API者身份的方法:
HttpContext.Current.User.Identity.Name;
当Web应用程序调用Web API时,我如何获取Azure Active Directory域\用户信息?可能我的调用API的函数完全错误吗?