Using fiddler to test ASP.NET Web API token based authentication

Leave a Comment
we will discuss how to test ASP.NET Web API token based authenticationthe using fiddler

In our previous post we have registered a new user with the following email address and password. The username is also the email address.
Email : test1@test.com
Password : Test123!

Now let's use fiddler and generate the access token using the above username and password. Use the Composer tab in Fiddler to compose a request. Fiddler configuration is shown below.
  • Issue a POST request to /token 
  • In the request body include username and the password. 
  • We also need to set grant_type=password. This indicates that we are presenting password for acquiring access token.
Token generation in ASP.NET Web API

With the above configuration in place, click the Execute button in Fiddler. Notice we get the access token back. You can also see when the token is issued and when it expires. 
web api create token

Now let's understand how the access token is generated.
The code that generates the access token is provided by ASP.NET Web API out of the box. To see this code open the file "Startup.Auth.cs" that is present in App_Start folder. Notice in the ConfigureAuth() method
  • An instance of OAuthAuthorizationServerOptions is created
  • The /Token end point to which we have posted username and password is specified in here
  • The token expiry is specified using AccessTokenExpireTimeSpan property. In this case the token expires 14 days after it is issued. You can change this to meet your application needs.
  • The Provider property is initialised with a new instance of ApplicationOAuthProvider class. This class has GrantResourceOwnerCredentials() method which verifies if the provided username and password are valid. If valid an access token is issued. The token is generated when context.Validated(ticket) method is called.
Now let us see how to call EmployeesController and retrieve employees data.

If we issue a GET request to http://localhost:61358/api/employees we get 401 Unauthorized error. Since the EmployeesController is decorated with [Authorize] attribute, the request needs to be authenticated. So with every request we have to send the Bearer token using Authorization header as shown in fiddler below.
fiddler bearer token


Post a Comment

Note: only a member of this blog may post a comment.