使用带有基本身份validation的Fiddler访问RESTful WebAPI

我有一个没有问题的WebAPI。 我已经在本地testing并部署到我的服务器,并在IIS中configuration此服务以使用基本身份validation。 我能浏览到我的服务,我收到authentication挑战,我期望和所有的作品游泳! 现在我想用小提琴来testing这个,我已经构build了一个POST到一个特定的url,我得到了一个401(未经授权)的错误。 所以我决定添加一个base64string在我的请求头,我现在得到一个500错误。

我想知道的是,我的请求标题看起来是正确的吗? 我显然会混淆我的主机和base64string,其中包含格式用户名:密码的身份validation质询。

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

提琴手有一个工具,为您的Base64。 只需创build您的string:用户名:密码,然后转到工具 – >文本向导并input用户名密码组合,然后selectToBase64。 复制并粘贴到你的授权标题,你应该很好去。

AlexGad是对的。 一旦创build了ToBase64编码,在组合请求的头部下面,添加下面一行:

Authorization: Basic [encoded_value]

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

我知道这是一个较老的post,但当我第一次看到如何做到这一点,我遇到这个post,知道这是答案,但我仍然不知道的东西,如证件需要昏迷分离等。所以,以防万一这可能有助于在这里的人是我的小提琴手的笔记我放在一起的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}] 

较新版本的Fiddler(我在v4.6.20172.31233中testing过)会自动为您创build并添加必要的Authorization标头,如果您在Composer URL字段中指定用户名和密码,如下所示:

 https://SomeUser:SomePass@sitename 

执行后,将其从URL中取出并变成HTTP标头,如下所示:

 Authorization: Basic U29tZVVzZXI6U29tZVBhc3M=