使用Fiddler和基本身份验证来访问RESTful Web API

时间:2012-09-19 19:39:20

标签: rest asp.net-web-api fiddler

我有一个没有问题的WebAPI。我已在本地测试并部署到我的服务器并在IIS中配置此服务以使用基本身份验证。我能够浏览我的服务,我收到了我期望的身份验证挑战,并且所有工作都在游泳!现在我想使用Fiddler来测试这个并且我已经构建了一个特定URL的POST,并且我收到了401(未授权)错误。所以我决定在我的Request Header中添加一个base64字符串,现在我收到500错误。

我想知道的是,我的请求标题看起来是否正确?我显然要混淆我的Host和base64字符串,其中包含身份验证质询用户名:密码。

User-Agent: Fiddler
Host: xxx.xxx.xxx.xxx:xxxx
Content-Length: 185
Content-Type: text/json
Authorization: Basic jskadjfhlksadjhdflkjhiu9813ryiu34

6 个答案:

答案 0 :(得分:136)

Fiddler有一个为你做Base64的工具。只需创建您的字符串:用户名:密码,然后转到工具 - > TextWizard并输入用户名密码组合并选择ToBase64。将其复制并粘贴到您的Authorization标题中,您应该很高兴。

答案 1 :(得分:19)

AlexGad是对的。创建ToBase64编码后,在编写请求时在标题下添加以下行:

Authorization: Basic [encoded_value]

现在执行请求,它应该工作! :)

答案 2 :(得分:9)

如果您在Composer URL中指定用户名和密码,则较新版本的Fiddler(我在v4.6.20172.31233中测试过)将自动为您创建并添加必要的Authorization标题 像这样的领域:

https://SomeUser:SomePass@sitename

执行后,将其从URL中删除并变为HTTP标头,如:

Authorization: Basic U29tZVVzZXI6U29tZVBhc3M=

答案 3 :(得分:7)

我知道这是一篇较老的帖子,但是当我第一次看到如何做到这一点时,我发现了这篇帖子,并且知道这是答案,但我仍然不知道证件需要被昏迷分隔等等所以,以防万一这可能会帮助这里的人是我为Fiddler做的笔记,我把它放在一起进行JSON POST。

First you need to Base64 encode your "username:password"
    • Go to Tools | Text Wizard | To Base64 in dropdown

Post a message in the Composer tab
    • Change the type to POST in the dropdown.
    • Put in the URL
    • Add the following to the top header section.
        ○ Authorization: Basic ReplaceWithYourEncodedCredtials=
        ○ Content-Type: application/json; charset=utf-8
    • Add some JSON content to the body
        ○ [{"Address1":null,"Address2":null,"BirthDate":"1967-10-06T00:00:00","City":null,"CompanyHireDate":"2011-06-03T00:00:00","EmailAddress":"myEmail@company.com","EmployeeNumber":"112233","FirstName":"JOHN","LastName":"DOE","PhoneNumber":null,"State":null,"UserName":"JDoe","ZipCode":null}]

答案 4 :(得分:0)

我希望这可以帮助像我这样的新手。

如果您使用的是GET,则在令牌周围使用 [] 无效。

以下操作无效:-

Authorization: Basic [MkgzczhaVnhZNG13d1FkTVJ2ZmZMQzFQQnhZRG5WdUVhbDNiVWs0ZldDdzo=]

以下工作:-

Authorization: Basic MkgzczhaVnhZNG13d1FkTVJ2ZmZMQzFQQnhZRG5WdUVhbDNiVWs0ZldDdzo=

答案 5 :(得分:-1)

我发现在Fiddler 4中,我所要做的就是检查规则菜单上的自动验证选项。