我正在调用Azure API管理中托管的API。 API配置为使用Azure Active Directory进行身份验证,因此在没有授权标头的情况下调用时应生成302重定向响应。
这是我的电话:
var request = (HttpWebRequest)WebRequest.Create("MyApiEndPoint");
request.ContentType = "text/html; charset=utf-8";
request.Headers.Add("Ocp-Apim-Subscription-Key", model.SubKey);
var response = (HttpWebResponse)request.GetResponse();
当我在fiddler中观看电话时,我确实可以看到302重定向作为响应:
然而,在我的通话应用程序中,我收到了401响应。
有人可以解释这里发生了什么吗?
答案 0 :(得分:3)
您尚未根据请求将AllowAutoRedirect
设置为false
。
302是重定向,因此您的请求不会将其作为响应传递,而是在重定向资源上发出新请求,然后生成该其他请求的结果。
附注:对于通过浏览器浏览网页的用户而言,发布缺失授权的302可能没问题,以便向他显示自定义登录页面。但是对于API,直接产生401可能更好。