CLR and Present Danger

Published 06 March 06 01:51 PM | Adam Singer 

Jeff Maxton recently pointed out an issue with Team Foundation and the Windows folder "encrypt contents" option.

Briefly, the problem is this. Suppose you want to encrypt your working folders for your Team Foundation workspace. Theoretically, you should just be able to select "Advanced..." on the containing folder's Properties dialog and click "Encrypt contents to secure data" option. After doing this, any file you drag and drop into the folder in Windows Explorer automatically has encryption turned on. For Team Foundation, however, only the folders seem to be encrypted while the files are not.

After a bit of poking around the code with James, it became clear that the issue resided not in Team Foundation's handling of the files, but rather with the CLR. Just for fun, let's do a little interactive lab time.

  1. Create two folders on disk: "C:\encrypted" and "C:\unencrypted"
  2. Right-click on "encrypted" and select properties, then select "Advanced..." and check "Encrypt contents to secure data"; click "OK" on the advanced and properties dialogs
  3. Start up VS and run the following C# program:
    using System.IO;
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                File.WriteAllText(@"C:\unencrypted\file1.txt", "text");
                File.Move(@"C:\unencrypted\file1.txt", @"C:\encrypted\file1.txt");
                File.WriteAllText(@"C:\encrypted\file2.txt", "text");
            }
        }
    }
  4. Now, check the properties on file1.txt and file2.txt- note that file2 is encrypted while file1 is not.

Due to the way Team Foundation Version Control retrieves files from the server, files maintain the encryption setting on the temporary directory we use for downloading. If you want to encrypt these files, you can encrypt the "TFSTemp" directory in your user temp dir. This will cause the files to be downloaded with encryption on, which they will then retain once moved to your working dirs.

PLEASE NOTE: This is not a thoroughly tested environment setup, and all the usual disclaimers apply. For more on Windows encryption, please check Microsoft Support.

Edit (3/16/2006): This is also true for the "Compress contents to save disk space" option.

Filed under:

Comments

# Team System News said on March 7, 2006 12:19 PM:
John Lawrence gives us some history and clarification on their Team Foundation dogfood statistics.  He...
New Comments to this post are disabled

About Adam Singer

Faster than a speeding batch file, stronger than a well coded C# library, Adam is often seen testing those dark, dank quagmires of features where few tread and even fewer return. And he does so with a signature chipper attitude not sold in stores.

Search

This Blog

Syndication

Page view tracker