我目前有一个正常工作的C#/ ASP.NET Web API程序,该程序通过BasicAuthentication(在向Web API发出HTTP请求时,我通过HTTP响应标头发送了用户名和密码)来授权尝试访问该API的用户API。但是,当我尝试将Web API托管在IIS上时,Web API的BasicAuthentication变得混乱而无法触发。
当前,我将Web API托管在IIS上,并将其显示在IIS管理器(作为应用程序在默认网站下)中,并且为了进行身份验证,启用了“匿名身份验证”,并且“ ASP.NET模仿+表单”身份验证”被禁用。
我可以做些什么来允许通过IIS的Web API的BasicAuthentication吗?
编辑:我的WebApiConfig.cs中有一个授权过滤器
config.Filters.Add(new BasicAuthenticationAttribute());
编辑:用于身份验证的代码
client.DefaultRequestHeaders.Add("Authorization", "BASIC " + encode);
var postTask = client.PostAsJsonAsync<string>("values?reason=postauth", "PostAuth");
postTask.Wait();
var result = postTask.Result;
string resultStr = postTask.Result.ReasonPhrase.ToString();
字符串resultStr返回“内部服务器错误”。