How can I redirect users to the contact dashboard after login?
Your best bet with Drupal is to use the Rules module.  I think you also need to have CiviCRM Entity installed to get the proper tokens.

Add a new Rules Component:


Component Plugin: Action Set
Name the component (e.g.: Fetch CiviCRM ID of logged in user)
You only need one variable, choose CiviCRM > CiviCRM Contact (may need the CiviCRM Entity module for this step).  Give it a label (e.g.: Contact) and a machine name (e.g. civi_contact).  For usage, leave it on Parameter.


For the actions in the Action Set:

Add new action (1):


Entities > Fetch Entity by Property (not one of the many possibilities listed under CiviCRM headings)
Value: User
Property - Value: CiviCRM Contact
For Value - Data Selector, choose whatever the machine name of your Variable above is (e.g. civi-contact).
Limit the result count to 1.
Save


Add new action (2):


System > Page redirect
Specify your URL - you should now be able to use the [your-machine-name:id] token (e.g. [civi-contact:id]) to fill in the logged in user's Civi Contact ID.
Save


Then create a new rule


Reacts on Event: User > User has logged in
Add a condition: User > User has role(s); specify which role(s)
Set actions: use the Rules component that you just created (all the way at the bottom of the list).


Lastly, clone the rule component and rule as much as you need depending on how many different roles are going to different places.