0

如何禁用身份驗證當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

回答

4

轉到IIS Manager > Authentication > Basic Authentication,並確保它被設置爲Disabled

+0

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