The situation: In a standard scenario, it is easy to add a connection to a TFS 2013 server inside Visual Studio to TFS. The dialog box "Add team foundation server" is pretty simple, and this work fine when you and the TFS server are in the same domain. And when you open VS again, the connection is made up automatically again.
Now we want to connect developers from outside to our TFS behind our firewall.
The problem:
Short version: I need a mechanism to enter a userid and a passphrase BEFORE connecting to the TFS via AD credentials (which occurs automatically vie NTML).
Long version: We want to use the mechanism of a 'Reverse Proxy', used in combination with a RSA SecurID hardware key. This works fine, when a developer browses the Web Portal of a team project in a browser. The only thing which is different than in the standard scenario: There is a web form, which shows up, and you have to enter your UserId and - no, not the AD password - the passphrase of the SecurID, 6 digits, which gets updated every minute on the SecurID token. This is 2-factor-authentication to get through the reverse proxy.
This works fine in a browser, but not in Visual Studio (developer tasks you can only do in VS, like check-out, check-in a.s.o). so there has to be a dialog, where you can enter the userid AND the passphrase BEFORE Visual Studio attempts to connect to the inside TFS. But this is not implemented out-of-the-box, just an error message occurs, with a 500 HTTP status. Of course, the reverse proxy mechanism needs this userid and passphrase from the SecurId Key, and you have to type in manually.
The question: Is there a way to change or implement a custom add-in or whatever, that a dialog box appears, where we can enter the userid and passphrase?
This has to happen in 2 scenarios: First, when you want to ADD an new TFS to your TFS list via the dialog box "Add team foundation server". Second, when you open Visual Studio and it wants to connect to this already added TFS again.
The code to connect itself I have already in a simple console app, first send the POST with userid and passphrase to the TFS (in reality to the Reverse Proxy authentication). A cookie comes back, and with this cookie I can access any web service of the TFS, and VS also uses this web services only. So I also have to add this cookie to the calls to the TFS web services, this means there has to be a way to tell the Visual Studio TFS "interface" to use this cookie with every web service call.
I searched some hours for a hint if and how this is possible, so I hope it is permitted to ask this question here. I checked, if a custom source control plug-in would be such a hook into, but I believe all action in such a custom plug-in happens AFTER the connection. I tried a basic source control plug-in (from the VS SDK), it works, I tried to catch the method where the connection is made, this is not inside this framework/interface.
Additional note: I already opened a Premier ticket at Microsoft, no answer til now. I think this is very special, and I'm not sure if they can even find the specialist who could answer this question ;-)