WebAPI Autorize身份验证必需弹出

问题描述:

如何禁用身份验证当WebAPI使用状态码401响应时,需要弹出?WebAPI Autorize身份验证必需弹出


enter image description here


这是我的WebAPI配置

public static class WebApiConfig 
{ 
    public static void Register(HttpConfiguration config) 
    { 
     // Web API configuration and services 

     // Web API routes 
     config.MapHttpAttributeRoutes(); 
     config.SuppressDefaultHostAuthentication(); 
     config.Filters.Add(new HostAuthenticationFilter(Startup.OAuthOptions.AuthenticationType)); 

     config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html")); 
     config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore; 
     //config.Formatters.JsonFormatter.SerializerSettings.Formatting = Newtonsoft.Json.Formatting.Indented; 
     config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); 

     config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 
    } 
} 
+0

你尝试过什么吗?你能显示一些代码吗? – Nobita 2015-03-19 12:39:51

+0

是的,我试图整天没有成功:( – 2015-03-19 12:44:51

+0

弹出窗口是浏览器的行为。如果你不想要它,我想你可能不得不以自定义的方式实现未经授权,而不是返回401 ,返回另一个代码 – 2015-03-19 14:47:39

转到IIS Manager > Authentication > Basic Authentication,并确保它被设置为Disabled

+0

这是非常好的提示,我使用iis express,所以我必须在我的applicationhost.config中将basicAuthentication更改为false – 2015-03-23 09:53:15