C# .NETWebAPI中的身份验证窗口

C# .NETWebAPI中的身份验证窗口,c#,.net,web-services,authentication,C#,.net,Web Services,Authentication,我有一个使用ADO.NET框架的Web API,我删除了Web.config文件中的身份验证和授权字段,但在google chrome中,身份验证窗口不断出现 如何卸下窗户 我试图删除authorization元素和authorization元素,但是authorization窗口一直弹出。我试着把它设为“无”,但窗户还是一直开着 我正在localhost上运行api,当我剪切窗口时,我明显收到错误消息: { "error":{ "code":"","message":"Au

我有一个使用ADO.NET框架的Web API,我删除了
Web.config
文件中的身份验证和授权字段,但在google chrome中,身份验证窗口不断出现

如何卸下窗户

我试图删除authorization元素和authorization元素,但是authorization窗口一直弹出。我试着把它设为“无”,但窗户还是一直开着

我正在localhost上运行api,当我剪切窗口时,我明显收到错误消息:

    {
  "error":{
    "code":"","message":"Authorization has been denied for this request."
  }
}
我的控制程序没有身份验证或授权头,我的控制程序类中只有一个函数,它是从OData控制器类派生的

  [HttpGet, EnableQuery]
  public IQueryable<Record> GetRecord(ODataQueryOptions<Record> options)
[HttpGet,EnableQuery]
公共IQueryable GetRecord(ODataQueryOptions选项)

您将获得身份验证窗口,因为当Chrome试图按您发布的内容呼叫网站时,它将返回401未经授权的响应。这可能是由于web服务器基于缺乏授权拒绝您的请求(例如,按照Novak007的建议打开windows授权),也可能是由于您的代码显式拒绝

尝试在项目中设置一个断点,如果您能够找到它,那么问题不是服务器配置问题,而是代码中的某个地方


如果您根本无法访问您的项目,那么这是一个服务器配置问题。由于看起来您正在使用IIS Express,我将检查您的web.config和\My Documents\IISExpress\config\applicationhost.config中的应用程序主机配置文件,以查看是否启用了windows或其他集成身份验证方案。有关IIS Express的参考,请参阅此问题

在IIS中启用了哪些身份验证方法?发布控制器的代码-它是否具有任何身份验证属性?检查IIS的安全设置。是否启用匿名身份验证?@UserControl我使用microsoft asp.net网站上的教程制作了一个odata web api,效果很好。我有类似的代码,它不工作。在哪里可以看到IIS身份验证方法?我猜代码中一定有某个地方强制执行此身份验证。我必须删除它。@PanagiotisKanavos我应该在哪里检查IIS的安全设置?@UserControl我在我的控制器[HttpGet,EnableQuery]公共IQueryable GetRecord(ODataQueryOptions)中只使用了一个函数。我在同一台机器上运行了类似的项目。所以,我猜问题一定出在我的代码中,对吧?如果没有看到你的代码,很难确定这一点,但听起来你的代码很可能是罪魁祸首。如果要将其作为变量删除,也可以使用IIS而不是IIS Express运行此操作。然后,您可以按照UseControls的建议检查身份验证设置。您好,我调试了它,请求是HTTP请求正在到达代码。@bechbcd但不是我控制器的操作函数,它实际上永远不会到达AAAction函数。您确定使用了正确的路由吗?您的项目中是否安装了OWIN?