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

bri*_*ans 69 rest fiddler asp.net-web-api

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

我想知道的是,我的请求标题看起来是否正确?我显然要混淆我的Host和base64字符串,其中包含Authentication challenge的格式username:password.

User-Agent: Fiddler
Host: xxx.xxx.xxx.xxx:xxxx
Content-Length: 185
Content-Type: text/json
Authorization: Basic jskadjfhlksadjhdflkjhiu9813ryiu34
Run Code Online (Sandbox Code Playgroud)

Ale*_*Gad 140

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


Sun*_*uri 22

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

Authorization: Basic [encoded_value]

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


Nic*_*nes 11

提琴手的新版本(我在v4.6.20172.31233测试)将创建并添加必要的Authorization头为你自动如果您指定像这样的作曲家URL字段的用户名和密码:

https://SomeUser:SomePass@sitename
Run Code Online (Sandbox Code Playgroud)

在执行时,这会将其从URL中删除并变为HTTP标头,如:

Authorization: Basic U29tZVVzZXI6U29tZVBhc3M=
Run Code Online (Sandbox Code Playgroud)


Cav*_*man 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}]
Run Code Online (Sandbox Code Playgroud)