Authentication Fiddler HTTP/1.1 401未经授权
我有一个本地Web API项目,它不是通过本地IIS运行的。要运行该项目,我在VisualStudio2013中使用F5 使用Fiddler,我不断得到:Authentication Fiddler HTTP/1.1 401未经授权,authentication,asp.net-web-api,authorization,fiddler,Authentication,Asp.net Web Api,Authorization,Fiddler,我有一个本地Web API项目,它不是通过本地IIS运行的。要运行该项目,我在VisualStudio2013中使用F5 使用Fiddler,我不断得到: HTTP/1.1 401 Unauthorized # Result Protocol Host URL Body Caching Content-Type Process Comments Custom 88 401 HTTP localhost:52787 /api/values 6,180
HTTP/1.1 401 Unauthorized
# Result Protocol Host URL Body Caching Content-Type Process Comments Custom 88 401 HTTP localhost:52787 /api/values 6,180 private text/html; charset=utf-8 fiddler:10724
我知道我应该得到200,但我不是。我应该在哪里检查我做错了什么
这是一个来自浏览器的屏幕截图。当我回到Fiddler查看结果时,我得到了这个结果,我只是键入http://localhost:52787/api/helloapi
输入URL(在浏览器中),然后按enter键:
下面是当我通过Fiddler手动编写get时得到的结果:
我选中了自动验证选项。当你说“使用小提琴手”时,你的确切意思是什么
如果您使用Fiddler的Composer手动编写请求,请自己添加
授权
标题,或者单击Composer的选项选项卡并选中自动验证
框。我也遇到了同样的问题。在我的例子中,它是由web.config中的一个deny子句引起的,该子句强制所有用户进行身份验证。这在浏览器中运行良好,因为它在幕后处理身份验证并发送适当的授权Cookie。在Fiddler中,这种握手不会发生,因此是401。在开发环境中,将其添加到web.config中,它应该可以工作
<system.web>
<authorization>
<allow users="?" />
</authorization>
</system.web>
我知道这是一篇较老的帖子,但如果有人(像我一样)仍在寻找答案,而上述答案没有解决问题,请尝试此解决方案- 上述答案在我的dev env中不起作用,它由VS 2017和VSTS组成,因为我已经在web.config文件中正确设置了
元素。经过几次尝试之后,我发现问题的根源在其他地方
我需要对“applicationhost.config”文件进行以下更改,该文件通常位于路径“C:\Users\xxx\Source\Repos\yyy\yyy\.vs\config
”下-
找到
元素并确保“enabled”属性设置为“true”,如下所示:
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="true" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
发生这种情况是因为您的ValuesController上有一个Authorize属性 [授权] 公共类值控制器:ApiController
只需删除ValuesController上的[Authorize]属性您的API需要身份验证,或者该操作的编码使其返回404的httpwebresponse。你没有提供足够的信息来回答问题。是的,我在api控制器前面有这个,并且我在其中添加了Users=my name[Authorize(Users=“…my user name…”),它仍然不起作用。我不知道的是。。。它在哪里寻找这些用户?我在哪里可以查到。我没有在任何地方配置其他身份验证。这些应该是本地计算机用户。它是在浏览器中工作而不是在fiddler中工作吗?是的,它在浏览器中工作,但我希望它在fiddler中工作。好的,web.api项目是默认的,我没有修改其中的任何内容,我把它放在api控制器User.Identity.IsAuthenticated.ToString()中,它返回false。所以我把asp.net项目包装起来,做了和它给我的一样的事情?????再次从浏览器中执行此操作,但也要运行fiddler并检查流量。也许你需要在你的请求中设置一个授权头。更新了我原来的问题。是的,我用的是菲德勒的作曲家。我选中了自动验证选项,但仍然得到相同的结果。使用Fiddler的“复制头”功能复制401响应上的HTTP响应头以更新您的问题。更清楚的是,当您单击Execute时,您只看到一个HTTP/401,而不是两个?