WebAPI Autorize身份验证必需弹出
问题描述:
如何禁用身份验证当WebAPI使用状态码401响应时,需要弹出?WebAPI Autorize身份验证必需弹出
这是我的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 }
);
}
}
答
转到IIS Manager > Authentication > Basic Authentication
,并确保它被设置为Disabled
。
+0
这是非常好的提示,我使用iis express,所以我必须在我的applicationhost.config中将basicAuthentication更改为false – 2015-03-23 09:53:15
你尝试过什么吗?你能显示一些代码吗? – Nobita 2015-03-19 12:39:51
是的,我试图整天没有成功:( – 2015-03-19 12:44:51
弹出窗口是浏览器的行为。如果你不想要它,我想你可能不得不以自定义的方式实现未经授权,而不是返回401 ,返回另一个代码 – 2015-03-19 14:47:39