<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>Aggregated Azure Blogs</title>
    <link>http://blogs.msdn.com/</link>
    <description>Posts from various Azure blogs aggregated into one RSS feed</description>
    <lastBuildDate>Sun, 29 Nov 2009 20:26:35 Z</lastBuildDate>
    <a10:id>AggregatedBlogs</a10:id>
    <item>
      <guid isPermaLink="true">http://blogs.msdn.com/clemensv/archive/2009/11/23/the-rough-setup-script-for-pdc09-svc18-getting-dinnernow-to-run-on-windows-azure.aspx</guid>
      <link>http://blogs.msdn.com/clemensv/archive/2009/11/23/the-rough-setup-script-for-pdc09-svc18-getting-dinnernow-to-run-on-windows-azure.aspx</link>
      <author>Clemens Vasters, Bldg 42|http://blogs.msdn.com/clemensv/default.aspx</author>
      <title>The Rough Setup Script for PDC09 SVC18 - Getting DinnerNow! to run on Windows Azure</title>
      <description>&lt;P&gt;At the bottom of this post you?ll find the DinnerNow version that I?ve been using for my PDC09 talk. The video of that talk is now available at &lt;A title=http://microsoftpdc.com/Sessions/SVC18 href="http://microsoftpdc.com/Sessions/SVC18"&gt;http://microsoftpdc.com/Sessions/SVC18&lt;/A&gt; and I recommend that you listen to the talk for context. &lt;/P&gt;
&lt;P&gt;The DinnerNow drop I?m sharing here is a customized version of the &lt;A href="http://dinnernow.net/"&gt;DinnerNow 3.1 version that?s up on CodePlex&lt;/A&gt;. If I were you, I?d install the original version and then unpack my zip file alongside of it and then use some kind of diff tool (the Windows SDK?s WinDiff tool is a start) to look at the differences between the versions. That will give you a raw overview of what I had to do. You?ll find that I had to add and move a few things, but that the app didn?t change in any radical way.&lt;/P&gt;
&lt;P&gt;Remember that looking at the code is more important that making it run. There?s one particular challenge you?d have right now with the Windows Azure CTP and that?s getting the two (!) Windows Azure compute tokens needed for separating out the web and the service tier as I?ve done here. It?s not difficult to consolidate the Web and the Web Service tier into a single role, but since I had to do the migration within a short period of time, I chose to split them up. &lt;/P&gt;
&lt;P&gt;FWIW, I time-boxed the migration to 3 work days ? which included learning about what our buddies over in SQL Azure had done in the past months ? and that turned out to be a comfortable fit in terms of time.&lt;/P&gt;
&lt;P&gt;Another function of time-boxing is that you?re finding me disabling security on most endpoints, including disabling the Access Control integration with Service Bus for most endpoints by setting the &lt;EM&gt;relayClientAuthenticationType&lt;/EM&gt; attribute on the respective binding elements to &lt;EM&gt;None&lt;/EM&gt;. &lt;/P&gt;
&lt;P&gt;I know that?s a sin, but I didn?t want to cause too much churn in the first iteration. The original version of DinnerNow is conveniently using Windows authentication/authorization for its communication paths. While that?s ok for a LAN setup, things get more complicated for an actual WAN setup that the DinnerNow scenario calls for. That would spawn a wholly different discussion that shines the spotlight on our Access Control service and why it?s useful ? even required ? for that scenario. In order not to overwhelm everyone, I left that out for this round and will revisit that aspect in the next weeks ? or maybe one of our (aspiring?) MVPs or RDs will beat me to it.&lt;/P&gt;
&lt;P&gt;I?m also going to work with the guys who wrote DinnerNow to find a way to host this modified version of Dinner Now with the on-premise runtime bits expressly not on my primary dev machine, where they?d live now. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Here what you need to do to get it to run&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I know this is rough. Writing up the long version of this is going to take some time and I prefer getting the bits to you early over me sitting here writing pages of docs. Maybe you can even help ;-) &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;First, you?ll need to go to the Windows Azure portal and get the SDKs and tokens/accounts. The &lt;A href="http://www.microsoft.com/windowsazure/getstarted/"&gt;Getting Started&lt;/A&gt; page has all the data and links you need so I?m not going to repeat them here in much detail. You will need at least one Windows Azure compute account (&lt;A href="https://connect.microsoft.com/Survey/NominationSurvey.aspx?SurveyID=7044&amp;amp;ProgramID=2500&amp;amp;SiteID=681"&gt;apply here&lt;/A&gt;), one SQL Azure account (&lt;A href="https://connect.microsoft.com/SQLAzure/Survey/NominationSurvey.aspx?SurveyID=5719&amp;amp;ProgramID=2089"&gt;apply here&lt;/A&gt;), and an AppFabric account (no application needed, &lt;A href="https://netservices.azure.com/"&gt;just log in w/ LiveID&lt;/A&gt;).&amp;nbsp; 
&lt;LI&gt;Download and install the regular version &lt;A href="http://dinnernow.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=31480"&gt;DinnerNow 3.1 from Codeplex&lt;/A&gt;. This will drop a ?Configure DinnerNow 3.1? shortcut on your desktop. Run that, install all prerequisites and make sure DinnerNow runs locally before you proceed. 
&lt;LI&gt;You will later need the databases that the setup created in your local SQLEXPRESS instance by setup. You?ll have to make a few changes, though. 
&lt;OL&gt;
&lt;LI&gt;First, (&lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=08E52AC2-1D62-45F6-9A4A-4B76A8564A2B&amp;amp;displaylang=en"&gt;download, install&lt;/A&gt;, and) open SQL Server Management Studio, connect to your SQL Server Express instance and switch to ?SQL Server and Windows Authentication mode? on the &lt;EM&gt;Server Properties&lt;/EM&gt; under &lt;EM&gt;Security&lt;/EM&gt;. Then you?ll need to go to to the Security settings and either create a new account and grant it all rights on the &lt;STRONG&gt;aspnetdb&lt;/STRONG&gt; database or just enable the ?sa? account and set its password.&amp;nbsp; 
&lt;LI&gt;Then you need to find the ?SQL Server Configuration Manager? and enable TCP for your SQLEXPRESS instance &lt;A href="http://msdn.microsoft.com/en-us/library/ms165718.aspx"&gt;like this&lt;/A&gt;. The default port will be 1433. If you have a full SQL Server instance on your dev machine and it?s configured for TCP the easiest is to suspend that for the moment and allow the SQLEXPRESS instance to squat the port.&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;Unpack the ZIP file appended below into a directory on your machine. At this point it should be ok to override the existing DinnerNow directory, but I?d keep things side-by-side for reference. If you copy side-by-side, grab the ./solution/DinnerNow ? Web/DinnerNow.WebUX/images/? directory from your local installation and copy it into the location where you unzipped the file here. I left out the images due to their size. And just as with the normal DinnerNow installation you?ll find a solution file named ?&lt;STRONG&gt;DinnerNow&amp;nbsp; - Main.sln&lt;/STRONG&gt;? in the unpacked directory ? open that in Visual Studio 2008 (not 2010!) because you?ll have to make some changes and edits. 
&lt;LI&gt;If you are lucky enough to have two Windows Azure compute accounts, you can skip this step. Otherwise, you will have to restructure the application a bit:&amp;nbsp; 
&lt;OL&gt;
&lt;LI&gt;In the &lt;EM&gt;?DinnerNow ? WA? &lt;/EM&gt;solution branch where the Windows Azure deployment project reside you?ll have to consolidate the &lt;EM&gt;DinnerNow.WindowsAzure&lt;/EM&gt; project and the &lt;EM&gt;DinnerNow.WindowsAzureAppSrv &lt;/EM&gt;projects into one by replicating the &lt;EM&gt;DinnerNow.DBBridge&lt;/EM&gt; reference into the &lt;EM&gt;DinnerNow.WindowsAzure&lt;/EM&gt; project and abandoning/deleting the rest. 
&lt;LI&gt;In the ?&lt;EM&gt;DinnerNow ? Web?&lt;/EM&gt; solution branch you will have to modify the &lt;EM&gt;DinnerNow.WebUX&lt;/EM&gt; project by merging the DinnerNow.ServiceHost project from the ?&lt;EM&gt;DinnerNow -ServicePortfolio2? &lt;/EM&gt;branch into it, including merging the config files. In the original DinnerNow the hosting default is that the ServiceHost&amp;nbsp; project lives in the ./services subdirectory of the WebUX app. You can also do it that way, but you?ll have to change the respective client URIs to point to the right path.&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;In the ./database directory is a file called &lt;EM&gt;SQLAzureImport.sql. &lt;/EM&gt;That?s the exported and customized script for the DinnerNow restaurants and menus database. Create a new database (1GB is enough) and load the DB with this script. You can do this with the command line or with SQL Management Studio. &lt;A href="http://msdn.microsoft.com/en-us/library/ee621784.aspx"&gt;The SQL Azure docs will tell you how&lt;/A&gt;. 
&lt;LI&gt;Now you?ll need to do a range of search/replace steps across the whole project. These are mostly in *.config files - a few places are in the code, which I count as bugs, but those are faithfully carried over from the original: 
&lt;OL&gt;
&lt;LI&gt;Find all occurrences of &lt;STRONG&gt;sqlazure-instance&lt;/STRONG&gt; and replace them with your unqualified SQL Azure &lt;EM&gt;server name&lt;/EM&gt; (might look like this: tn0a1b2c3d) 
&lt;LI&gt;Find all occurrences of &lt;STRONG&gt;sqlazure-dbname&lt;/STRONG&gt; and replace them with your SQL Azure &lt;EM&gt;database name&lt;/EM&gt; 
&lt;LI&gt;Find all occurrences of &lt;STRONG&gt;sqlazure-acct&lt;/STRONG&gt; and replace them with your SQL Azure &lt;EM&gt;administrator username&lt;/EM&gt; 
&lt;LI&gt;Find all occurrences of &lt;STRONG&gt;sqlazure-password&lt;/STRONG&gt; and replace them with your SQL Azure &lt;EM&gt;administrator password&lt;/EM&gt; 
&lt;LI&gt;Find all occurrences of &lt;STRONG&gt;appfabricservicebus-ns&lt;/STRONG&gt; and replace them with your unqualified AppFabric &lt;EM&gt;namespace name&lt;/EM&gt; 
&lt;LI&gt;Find all occurrences of &lt;STRONG&gt;appfabricservicebus-key&lt;/STRONG&gt; and replace them with your AppFabric &lt;EM&gt;Service Bus&lt;/EM&gt; &lt;EM&gt;issuer key&lt;/EM&gt; 
&lt;LI&gt;Find all occurrences of &lt;STRONG&gt;windowsazuresvcrole-acct&lt;/STRONG&gt; and replace them with the name of your Windows Azure compute account. If you have just one, use that (given you?ve done the rework in step 4), if you have two use the account-name where you will host the service tier. 
&lt;LI&gt;Find all occurrences of &lt;STRONG&gt;sqlserver-password&lt;/STRONG&gt; and replace them with your &lt;EM&gt;local&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/EM&gt;SQL Server Express instance?s ?sa? account password. &lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;Do a full batch Rebuild of the whole project 
&lt;LI&gt;Go to the ?DinnerNow ?WA? solution and publish the project(s) to your Windows Azure compute account(s). If you had to consolidate them you?ll have one package to deploy, if you left things as they are you?ll have two packages to deploy. You can also run these packages in the local DevFabric to test things out. 
&lt;LI&gt;The executables you need to run are going to be dropped into the .\bin directory by the build. You need to run all 6 apps ? but you could run them on 6 different machines ? the two workflow hosts each assume the local presence of the DinnerNowWF database: 
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;CloudTraceRecorder.exe&lt;/STRONG&gt; ? this is the simple event listener app. You can run this right away to observe the apps starting up inside of Azure as they write events to the event listener. You can and should run this as you deploy. You can run any number of instances of CloudTraceRecorder anywhere. 
&lt;LI&gt;&lt;STRONG&gt;PortBridge.exe&lt;/STRONG&gt; ? this is the on-premise bridge-head for bridging to your local SQL Server Express instance so that the cloud application can get at its membership database that you host for it on your machine. After the search/replace steps you will notice that you have modified connection strings that point to a SQL Server role peeking out of your *AppSrv role. The secret ingredient is in the DinnerNow.DBBridge role that?s listening for TCP connections on behalf of your on-premise SQL Server and that connects them down to your local server with the logic in &lt;EM&gt;Microsoft.Samples.ServiceBus.Connections&lt;/EM&gt;. This is the same code that?s in &lt;A href="http://vasters.com/clemensv/PermaLink,guid,3e35d8bd-b755-453f-8c63-1a57c570eb4c.aspx"&gt;PortBridge&lt;/A&gt;. 
&lt;LI&gt;&lt;STRONG&gt;DinnerNow.OrderProcessingHost.exe&lt;/STRONG&gt; is the (new) host application for the workflow that handles the order process. 
&lt;LI&gt;&lt;STRONG&gt;DinnerNow.RestaurantProcessingHost.exe&lt;/STRONG&gt; is the (new) host application for the workflow that handles the restaurant process. 
&lt;LI&gt;&lt;STRONG&gt;DinnerNowKiosk.exe&lt;/STRONG&gt; is the only slightly modified version of the DinnerNow in-restaurant kiosk 
&lt;LI&gt;Not in .\bin but rather to be started/deployed from VS is the also just slightly modified Windows Mobile app for the delivery app&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please also mind that the DinnerNow Powershell support and the other test and diagnostics capabilities haven?t been touched here, yet. &lt;/P&gt;
&lt;P&gt;Oh, and ? this is provided as-is ? I?ll do my best to discuss some of the patterns over the next several weeks, but I don?t have time to provide 1:1 support.&lt;/P&gt;
&lt;P&gt;Here?s the code:&lt;/P&gt;&lt;A href="http://vasters.com/clemensv/content/binary/DinnerNow-SVC18-PDC09.zip"&gt;DinnerNow-SVC18-PDC09.zip (2.35 MB)&lt;/A&gt;&lt;img width="0" height="0" src="http://vasters.com/clemensv/cptrk.ashx?id=bf4c0637-7829-44e3-a2c4-0f2f135fb686"&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9927629" width="1" height="1"&gt;</description>
      <pubDate>Mon, 23 Nov 2009 14:42:16 Z</pubDate>
      <a10:content type="text">&lt;P&gt;At the bottom of this post you?ll find the DinnerNow version that I?ve been using for my PDC09 talk. The video of that talk is now available at &lt;A title=http://microsoftpdc.com/Sessions/SVC18 href="http://microsoftpdc.com/Sessions/SVC18"&gt;http://microsoftpdc.com/Sessions/SVC18&lt;/A&gt; and I recommend that you listen to the talk for context. &lt;/P&gt;
&lt;P&gt;The DinnerNow drop I?m sharing here is a customized version of the &lt;A href="http://dinnernow.net/"&gt;DinnerNow 3.1 version that?s up on CodePlex&lt;/A&gt;. If I were you, I?d install the original version and then unpack my zip file alongside of it and then use some kind of diff tool (the Windows SDK?s WinDiff tool is a start) to look at the differences between the versions. That will give you a raw overview of what I had to do. You?ll find that I had to add and move a few things, but that the app didn?t change in any radical way.&lt;/P&gt;
&lt;P&gt;Remember that looking at the code is more important that making it run. There?s one particular challenge you?d have right now with the Windows Azure CTP and that?s getting the two (!) Windows Azure compute tokens needed for separating out the web and the service tier as I?ve done here. It?s not difficult to consolidate the Web and the Web Service tier into a single role, but since I had to do the migration within a short period of time, I chose to split them up. &lt;/P&gt;
&lt;P&gt;FWIW, I time-boxed the migration to 3 work days ? which included learning about what our buddies over in SQL Azure had done in the past months ? and that turned out to be a comfortable fit in terms of time.&lt;/P&gt;
&lt;P&gt;Another function of time-boxing is that you?re finding me disabling security on most endpoints, including disabling the Access Control integration with Service Bus for most endpoints by setting the &lt;EM&gt;relayClientAuthenticationType&lt;/EM&gt; attribute on the respective binding elements to &lt;EM&gt;None&lt;/EM&gt;. &lt;/P&gt;
&lt;P&gt;I know that?s a sin, but I didn?t want to cause too much churn in the first iteration. The original version of DinnerNow is conveniently using Windows authentication/authorization for its communication paths. While that?s ok for a LAN setup, things get more complicated for an actual WAN setup that the DinnerNow scenario calls for. That would spawn a wholly different discussion that shines the spotlight on our Access Control service and why it?s useful ? even required ? for that scenario. In order not to overwhelm everyone, I left that out for this round and will revisit that aspect in the next weeks ? or maybe one of our (aspiring?) MVPs or RDs will beat me to it.&lt;/P&gt;
&lt;P&gt;I?m also going to work with the guys who wrote DinnerNow to find a way to host this modified version of Dinner Now with the on-premise runtime bits expressly not on my primary dev machine, where they?d live now. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Here what you need to do to get it to run&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I know this is rough. Writing up the long version of this is going to take some time and I prefer getting the bits to you early over me sitting here writing pages of docs. Maybe you can even help ;-) &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;First, you?ll need to go to the Windows Azure portal and get the SDKs and tokens/accounts. The &lt;A href="http://www.microsoft.com/windowsazure/getstarted/"&gt;Getting Started&lt;/A&gt; page has all the data and links you need so I?m not going to repeat them here in much detail. You will need at least one Windows Azure compute account (&lt;A href="https://connect.microsoft.com/Survey/NominationSurvey.aspx?SurveyID=7044&amp;amp;ProgramID=2500&amp;amp;SiteID=681"&gt;apply here&lt;/A&gt;), one SQL Azure account (&lt;A href="https://connect.microsoft.com/SQLAzure/Survey/NominationSurvey.aspx?SurveyID=5719&amp;amp;ProgramID=2089"&gt;apply here&lt;/A&gt;), and an AppFabric account (no application needed, &lt;A href="https://netservices.azure.com/"&gt;just log in w/ LiveID&lt;/A&gt;).&amp;nbsp; 
&lt;LI&gt;Download and install the regular version &lt;A href="http://dinnernow.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=31480"&gt;DinnerNow 3.1 from Codeplex&lt;/A&gt;. This will drop a ?Configure DinnerNow 3.1? shortcut on your desktop. Run that, install all prerequisites and make sure DinnerNow runs locally before you proceed. 
&lt;LI&gt;You will later need the databases that the setup created in your local SQLEXPRESS instance by setup. You?ll have to make a few changes, though. 
&lt;OL&gt;
&lt;LI&gt;First, (&lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=08E52AC2-1D62-45F6-9A4A-4B76A8564A2B&amp;amp;displaylang=en"&gt;download, install&lt;/A&gt;, and) open SQL Server Management Studio, connect to your SQL Server Express instance and switch to ?SQL Server and Windows Authentication mode? on the &lt;EM&gt;Server Properties&lt;/EM&gt; under &lt;EM&gt;Security&lt;/EM&gt;. Then you?ll need to go to to the Security settings and either create a new account and grant it all rights on the &lt;STRONG&gt;aspnetdb&lt;/STRONG&gt; database or just enable the ?sa? account and set its password.&amp;nbsp; 
&lt;LI&gt;Then you need to find the ?SQL Server Configuration Manager? and enable TCP for your SQLEXPRESS instance &lt;A href="http://msdn.microsoft.com/en-us/library/ms165718.aspx"&gt;like this&lt;/A&gt;. The default port will be 1433. If you have a full SQL Server instance on your dev machine and it?s configured for TCP the easiest is to suspend that for the moment and allow the SQLEXPRESS instance to squat the port.&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;Unpack the ZIP file appended below into a directory on your machine. At this point it should be ok to override the existing DinnerNow directory, but I?d keep things side-by-side for reference. If you copy side-by-side, grab the ./solution/DinnerNow ? Web/DinnerNow.WebUX/images/? directory from your local installation and copy it into the location where you unzipped the file here. I left out the images due to their size. And just as with the normal DinnerNow installation you?ll find a solution file named ?&lt;STRONG&gt;DinnerNow&amp;nbsp; - Main.sln&lt;/STRONG&gt;? in the unpacked directory ? open that in Visual Studio 2008 (not 2010!) because you?ll have to make some changes and edits. 
&lt;LI&gt;If you are lucky enough to have two Windows Azure compute accounts, you can skip this step. Otherwise, you will have to restructure the application a bit:&amp;nbsp; 
&lt;OL&gt;
&lt;LI&gt;In the &lt;EM&gt;?DinnerNow ? WA? &lt;/EM&gt;solution branch where the Windows Azure deployment project reside you?ll have to consolidate the &lt;EM&gt;DinnerNow.WindowsAzure&lt;/EM&gt; project and the &lt;EM&gt;DinnerNow.WindowsAzureAppSrv &lt;/EM&gt;projects into one by replicating the &lt;EM&gt;DinnerNow.DBBridge&lt;/EM&gt; reference into the &lt;EM&gt;DinnerNow.WindowsAzure&lt;/EM&gt; project and abandoning/deleting the rest. 
&lt;LI&gt;In the ?&lt;EM&gt;DinnerNow ? Web?&lt;/EM&gt; solution branch you will have to modify the &lt;EM&gt;DinnerNow.WebUX&lt;/EM&gt; project by merging the DinnerNow.ServiceHost project from the ?&lt;EM&gt;DinnerNow -ServicePortfolio2? &lt;/EM&gt;branch into it, including merging the config files. In the original DinnerNow the hosting default is that the ServiceHost&amp;nbsp; project lives in the ./services subdirectory of the WebUX app. You can also do it that way, but you?ll have to change the respective client URIs to point to the right path.&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;In the ./database directory is a file called &lt;EM&gt;SQLAzureImport.sql. &lt;/EM&gt;That?s the exported and customized script for the DinnerNow restaurants and menus database. Create a new database (1GB is enough) and load the DB with this script. You can do this with the command line or with SQL Management Studio. &lt;A href="http://msdn.microsoft.com/en-us/library/ee621784.aspx"&gt;The SQL Azure docs will tell you how&lt;/A&gt;. 
&lt;LI&gt;Now you?ll need to do a range of search/replace steps across the whole project. These are mostly in *.config files - a few places are in the code, which I count as bugs, but those are faithfully carried over from the original: 
&lt;OL&gt;
&lt;LI&gt;Find all occurrences of &lt;STRONG&gt;sqlazure-instance&lt;/STRONG&gt; and replace them with your unqualified SQL Azure &lt;EM&gt;server name&lt;/EM&gt; (might look like this: tn0a1b2c3d) 
&lt;LI&gt;Find all occurrences of &lt;STRONG&gt;sqlazure-dbname&lt;/STRONG&gt; and replace them with your SQL Azure &lt;EM&gt;database name&lt;/EM&gt; 
&lt;LI&gt;Find all occurrences of &lt;STRONG&gt;sqlazure-acct&lt;/STRONG&gt; and replace them with your SQL Azure &lt;EM&gt;administrator username&lt;/EM&gt; 
&lt;LI&gt;Find all occurrences of &lt;STRONG&gt;sqlazure-password&lt;/STRONG&gt; and replace them with your SQL Azure &lt;EM&gt;administrator password&lt;/EM&gt; 
&lt;LI&gt;Find all occurrences of &lt;STRONG&gt;appfabricservicebus-ns&lt;/STRONG&gt; and replace them with your unqualified AppFabric &lt;EM&gt;namespace name&lt;/EM&gt; 
&lt;LI&gt;Find all occurrences of &lt;STRONG&gt;appfabricservicebus-key&lt;/STRONG&gt; and replace them with your AppFabric &lt;EM&gt;Service Bus&lt;/EM&gt; &lt;EM&gt;issuer key&lt;/EM&gt; 
&lt;LI&gt;Find all occurrences of &lt;STRONG&gt;windowsazuresvcrole-acct&lt;/STRONG&gt; and replace them with the name of your Windows Azure compute account. If you have just one, use that (given you?ve done the rework in step 4), if you have two use the account-name where you will host the service tier. 
&lt;LI&gt;Find all occurrences of &lt;STRONG&gt;sqlserver-password&lt;/STRONG&gt; and replace them with your &lt;EM&gt;local&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/EM&gt;SQL Server Express instance?s ?sa? account password. &lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;Do a full batch Rebuild of the whole project 
&lt;LI&gt;Go to the ?DinnerNow ?WA? solution and publish the project(s) to your Windows Azure compute account(s). If you had to consolidate them you?ll have one package to deploy, if you left things as they are you?ll have two packages to deploy. You can also run these packages in the local DevFabric to test things out. 
&lt;LI&gt;The executables you need to run are going to be dropped into the .\bin directory by the build. You need to run all 6 apps ? but you could run them on 6 different machines ? the two workflow hosts each assume the local presence of the DinnerNowWF database: 
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;CloudTraceRecorder.exe&lt;/STRONG&gt; ? this is the simple event listener app. You can run this right away to observe the apps starting up inside of Azure as they write events to the event listener. You can and should run this as you deploy. You can run any number of instances of CloudTraceRecorder anywhere. 
&lt;LI&gt;&lt;STRONG&gt;PortBridge.exe&lt;/STRONG&gt; ? this is the on-premise bridge-head for bridging to your local SQL Server Express instance so that the cloud application can get at its membership database that you host for it on your machine. After the search/replace steps you will notice that you have modified connection strings that point to a SQL Server role peeking out of your *AppSrv role. The secret ingredient is in the DinnerNow.DBBridge role that?s listening for TCP connections on behalf of your on-premise SQL Server and that connects them down to your local server with the logic in &lt;EM&gt;Microsoft.Samples.ServiceBus.Connections&lt;/EM&gt;. This is the same code that?s in &lt;A href="http://vasters.com/clemensv/PermaLink,guid,3e35d8bd-b755-453f-8c63-1a57c570eb4c.aspx"&gt;PortBridge&lt;/A&gt;. 
&lt;LI&gt;&lt;STRONG&gt;DinnerNow.OrderProcessingHost.exe&lt;/STRONG&gt; is the (new) host application for the workflow that handles the order process. 
&lt;LI&gt;&lt;STRONG&gt;DinnerNow.RestaurantProcessingHost.exe&lt;/STRONG&gt; is the (new) host application for the workflow that handles the restaurant process. 
&lt;LI&gt;&lt;STRONG&gt;DinnerNowKiosk.exe&lt;/STRONG&gt; is the only slightly modified version of the DinnerNow in-restaurant kiosk 
&lt;LI&gt;Not in .\bin but rather to be started/deployed from VS is the also just slightly modified Windows Mobile app for the delivery app&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please also mind that the DinnerNow Powershell support and the other test and diagnostics capabilities haven?t been touched here, yet. &lt;/P&gt;
&lt;P&gt;Oh, and ? this is provided as-is ? I?ll do my best to discuss some of the patterns over the next several weeks, but I don?t have time to provide 1:1 support.&lt;/P&gt;
&lt;P&gt;Here?s the code:&lt;/P&gt;&lt;A href="http://vasters.com/clemensv/content/binary/DinnerNow-SVC18-PDC09.zip"&gt;DinnerNow-SVC18-PDC09.zip (2.35 MB)&lt;/A&gt;&lt;img width="0" height="0" src="http://vasters.com/clemensv/cptrk.ashx?id=bf4c0637-7829-44e3-a2c4-0f2f135fb686"&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9927629" width="1" height="1"&gt;</a10:content>
    </item>
    <item>
      <guid isPermaLink="true">http://blogs.msdn.com/clemensv/archive/2009/11/18/port-bridge.aspx</guid>
      <link>http://blogs.msdn.com/clemensv/archive/2009/11/18/port-bridge.aspx</link>
      <author>Clemens Vasters, Bldg 42|http://blogs.msdn.com/clemensv/default.aspx</author>
      <title>Port Bridge</title>
      <description>&lt;P&gt;Building ?hybrid? cloud applications where parts of an an app lives up in a cloud infrastructure and other parts of the infrastructure live at a hosting site, or a data center, or even in your house ought to be simple ? especially in this day and age of Web services. You create a Web service, make it accessible through your firewall and NAT, and the the cloud-hosted app calls it. That?s as easy as it ought to be.&lt;/P&gt;
&lt;P&gt;Unfortunately it?s not always that easy. If the server sits behind an Internet connection with dynamically assigned IP addresses, if the upstream ISP is blocking select ports, if it?s not feasible to open up inbound firewall ports, or if you have no influence over the infrastructure whatsoever, reaching an on-premise service from the cloud (or anywhere else) is a difficult thing to do. For these scenarios (and others) our team is building the &lt;EM&gt;&lt;A href="http://msdn.microsoft.com/en-us/azure/netservices.aspx"&gt;Windows Azure platform AppFabric&lt;/A&gt; Service Bus&lt;/EM&gt; (friends call us just &lt;EM&gt;Service Bus&lt;/EM&gt;). &lt;/P&gt;
&lt;P&gt;Now ? the Service Bus and the client bits in the &lt;EM&gt;Microsoft.ServiceBus.dll &lt;/EM&gt;assembly are great if you have services can can be readily hooked up into the Service Bus because they?re built with WCF. For services that aren?t built with WCF, but are at least using HTTP, I?ve &lt;A href="http://vasters.com/clemensv/PermaLink,guid,83edb04a-5696-401c-a919-8c1f379d130c.aspx"&gt;previously shown a way&lt;/A&gt; to hook them into Service Bus and have also demoed an updated version of that capability at Sun?s Java One. I?ll release an update for those bits tomorrow after my talk at PDC09 ? the version currently here on my blog (ironically) doesn?t play well with SOAP and also doesn?t have rewrite capabilities for WSDL. The new version does. &lt;/P&gt;
&lt;P&gt;But what if your service isn?t a WCF service or doesn?t speak HTTP? What if it speaks SMTP, SNMP, POP, IMAP, RDP, TDS, SSH, ETC? &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Introducing Port Bridge&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;?Port Bridge? ? which is just a descriptive name for this code sample, not an attempt at branding ? is a point-to-point tunneling utility to help with these scenarios. Port Bridge consists of two components, the ?Port Bridge Service? and the ?Port Bridge Agent?. Here?s a picture:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://vasters.com/clemensv/content/binary/WindowsLiveWriter/865a80e15ca0_D9A4/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title=image border=0 alt=image src="http://vasters.com/clemensv/content/binary/WindowsLiveWriter/865a80e15ca0_D9A4/image_thumb.png" width=611 height=220&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;The Agent?s job is to listen for and accept TCP or Named Pipe connections on a configurable port or local pipe name. The Service?s job is to accept for incoming connections from the Agent, establish a duplex channel with the Agent, and pump the data from the Agent to the actual listening service ? and vice versa. It?s actually quite simple. In the picture above you see that the Service is configured to connect to a SQL Server listening at the SQL Server default port 1433 and that the Agent ? running on a different machine, is listening on port 1433 as well, thus mapping the remote SQL Server onto the Agent machine as if it ran there. You can (and I think of that as to be more common) map the service on the Agent to any port you like ? say higher up at 41433.&lt;/P&gt;
&lt;P&gt;In order to increase the responsiveness and throughput for protocols that are happy to kill and reestablish connections such as HTTP does, ?Port Bridge? is always multiplexing concurrent traffic that?s flowing between two parties on the same logical socket. When using Port Bridge to bridge to a remote HTTP proxy that the Service machine can see, but the Agent machine can?t see (which turns out to be the at-home scenario that this capability emerged from) there are very many and very short-lived connections being tunneled through the channel. Creating a new Service Bus channel for each of these connections is feasible ? but not very efficient. Holding on to a connection for an extended period of time and multiplexing traffic over it is also beneficial in the Port Bridge case because it is using the Service Bus &lt;EM&gt;Hybrid&lt;/EM&gt; connection mode by default. With &lt;EM&gt;Hybrid&lt;/EM&gt;, all connections are first established through the Service Bus Relay and then our bits do a little ?NAT dance? trying to figure out whether there?s a way to connect both parties with a direct socket ? if that works the connection gets upgraded to the most direct connections in-flight. The probing, handshake, and upgrade of the socket may take 2-20 seconds and there?s some degree of luck involved to get that direct socket established on a very busy NAT ? and thus we want to maximize the use of that precious socket instead of throwing it away all the time.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;That seems familiar?!&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;You may notice that &lt;A href="http://vasters.com/clemensv/PermaLink,guid,26dc5df1-8b8c-4f71-8765-8904e584505b.aspx"&gt;SocketShifter&lt;/A&gt; (built by our friends at &lt;A href="http://www.aws.net/"&gt;AWS in the UK&lt;/A&gt;) is quite similar to Port Bridge. Even though the timing of the respective releases may not suggest it, Port Bridge is indeed Socketshifter?s older brother. Because we couldn?t make up our mind on whether to release Port Bridge for a while, I had AWS take a look at the service contract shown below and explained a few principles that I?m also explaining here and they had a first version of Socketshifter running within a few hours. There?s nothing wrong with having two variants of the same thing. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;How does it work?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Since I?m publishing this as a sample, I obviously need to spend a little time on the ?how?, even I?ll limit that here and will explain that in more detail in a future post. At the heart of the app, the contract that?s used between the Agent and the Service is a simple duplex WCF contract:&lt;/P&gt;&lt;PRE class=code&gt;    [&lt;SPAN style="COLOR: #2b91af"&gt;ServiceContract&lt;/SPAN&gt;(Namespace=&lt;SPAN style="COLOR: #a31515"&gt;"n:"&lt;/SPAN&gt;, Name=&lt;SPAN style="COLOR: #a31515"&gt;"idx"&lt;/SPAN&gt;, CallbackContract=&lt;SPAN style="COLOR: blue"&gt;typeof&lt;/SPAN&gt;(&lt;SPAN style="COLOR: #2b91af"&gt;IDataExchange&lt;/SPAN&gt;), SessionMode=&lt;SPAN style="COLOR: #2b91af"&gt;SessionMode&lt;/SPAN&gt;.Required)]
    &lt;SPAN style="COLOR: blue"&gt;public interface &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;IDataExchange
    &lt;/SPAN&gt;{
        [&lt;SPAN style="COLOR: #2b91af"&gt;OperationContract&lt;/SPAN&gt;(Action=&lt;SPAN style="COLOR: #a31515"&gt;"c"&lt;/SPAN&gt;, IsOneWay = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;, IsInitiating=&lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;)]
        &lt;SPAN style="COLOR: blue"&gt;void &lt;/SPAN&gt;Connect(&lt;SPAN style="COLOR: blue"&gt;string &lt;/SPAN&gt;i);
        [&lt;SPAN style="COLOR: #2b91af"&gt;OperationContract&lt;/SPAN&gt;(Action = &lt;SPAN style="COLOR: #a31515"&gt;"w"&lt;/SPAN&gt;, IsOneWay = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;)]
        &lt;SPAN style="COLOR: blue"&gt;void &lt;/SPAN&gt;Write(&lt;SPAN style="COLOR: #2b91af"&gt;TransferBuffer &lt;/SPAN&gt;d);
        [&lt;SPAN style="COLOR: #2b91af"&gt;OperationContract&lt;/SPAN&gt;(Action = &lt;SPAN style="COLOR: #a31515"&gt;"d"&lt;/SPAN&gt;, IsOneWay = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;, IsTerminating = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;)]
        &lt;SPAN style="COLOR: blue"&gt;void &lt;/SPAN&gt;Disconnect();
    }&lt;/PRE&gt;&lt;A href="http://11011.net/software/vspaste"&gt;&lt;/A&gt;
&lt;P&gt;There?s a way to establish a session, send data either way, and close the session. The &lt;EM&gt;TransferBuffer&lt;/EM&gt; type is really just a trick to avoid extra buffer copies during serialization for efficiency reasons. But that?s it. The rest of Port Bridge is a set of queue-buffered streams and pumps to make the data packets flow smoothly and to accept inbound sockets/pipes and dispatch them out to the proxied services. What?s noteworthy is that Port Bridge doesn?t use WCF streaming, but sends data in chunks ? which allows for much better flow control and enables multiplexing.&lt;/P&gt;
&lt;P&gt;Now you might say &lt;EM&gt;You are using a WCF ServiceContract?&lt;/EM&gt;&amp;nbsp;&lt;EM&gt;Isn?t that using SOAP and doesn?t that cause ginormous overhead?&lt;/EM&gt; No, it doesn?t. We?re using the WCF binary encoder in session mode here. That?s about as efficient as you can get it on the wire with serialized data. The per-frame SOAP overhead for net.tcp with the binary encoder in session mode is in the order of 40-50 bytes per message because of dictionary-based metadata compression. The binary encoder also isn?t doing any base64 trickery but treats binary as binary ? one byte is one byte. Port Bridge is using a default frame size of 64K (which gets filled up in high-volume streaming cases due to the built-in Nagling support) and so we?re looking at an overhead of far less than 0.1%. That?s not shabby. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;How do I use it?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This is a code sample and thus you?ll have to build it using Visual Studio 2008. You?ll find three code projects: &lt;EM&gt;PortBridge&lt;/EM&gt; (the Service), &lt;EM&gt;PortBridgeAgent&lt;/EM&gt; (the Agent), and the &lt;EM&gt;Microsoft.Samples.ServiceBus.Connections&lt;/EM&gt; assembly that contains the bulk of the logic for Port Bridge. It?s mostly straightforward to embed the agent side or the service side into other hosts and I?ll show that in a separate post. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Service&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The service?s exe file is ?PortBridge.exe? and is both a console app and a Windows Service. If the Windows Service isn?t registered, the app will always start as a console app. If the Windows Service is registered (with the installer or with installutil.exe) you can force console-mode with the ?c command line option.&lt;/P&gt;
&lt;P&gt;The app.config file on the Service Side (PortBridge/app.config, PortBridge.exe.config in the binaries folder) specifies what ports or named pipes you want to project into Service Bus:&lt;/P&gt;&lt;PRE class=code&gt;&lt;SPAN style="COLOR: blue"&gt;  &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;portBridge &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;serviceBusNamespace&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;mynamespace&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;serviceBusIssuerName&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;owner&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;serviceBusIssuerSecret&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;xxxxxxxx&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;localHostName&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;mybox&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;&amp;gt;
    &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;hostMappings&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;
      &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;add &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;targetHost&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;localhost&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;allowedPorts&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;3389&lt;/SPAN&gt;" &lt;SPAN style="COLOR: blue"&gt;/&amp;gt;
    &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;hostMappings&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;
  &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;portBridge&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;A href="http://11011.net/software/vspaste"&gt;&lt;/A&gt;
&lt;P&gt;The &lt;EM&gt;serviceBusNamespace&lt;/EM&gt; attribute takes your Service Bus namespace name, and the &lt;EM&gt;serviceBusIssuerSecret&lt;/EM&gt; the respective secret. The &lt;EM&gt;serviceBusIssuerName&lt;/EM&gt; should remain ?owner? unless you know why you want to change it. If you don?t have an &lt;EM&gt;AppFabric &lt;/EM&gt;account you might not understand what I?m writing about: &lt;A href="https://netservices.azure.com"&gt;Go make one&lt;/A&gt;.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;The &lt;EM&gt;localHostName&lt;/EM&gt; attribute is optional and when set, it?s the name that?s being used to map ?localhost? into your Service Bus namespace. By default the name that?s being used is the good old Windows computer-name.&lt;/P&gt;
&lt;P&gt;The &lt;EM&gt;hostMappings &lt;/EM&gt;section contains a list of hosts and rules for what you want to project out to Service Bus. Mind that all inbound connections to the endpoints generated from the host mappings section are protected by the Access Control service and require a token that grants access to your namespace ? which is already very different from opening up a port in your firewall. If you open up port 3389 (Remote Desktop) through your firewall and NAT, everyone can walk up to that port and try their password-guessing skills. If you open up port 3389 via Port Bridge, you first need to get through the Access Control gate before you can even get at the remote port. &lt;/P&gt;
&lt;P&gt;New host mappings are added with the &lt;EM&gt;add&lt;/EM&gt; element. You can add any host that the machine running the Port Bridge service can ?see? via the network. The &lt;EM&gt;allowedPorts &lt;/EM&gt;and &lt;EM&gt;allowedPipes&lt;/EM&gt; attributes define with TCP ports and/or which local named pipes are accessible. Examples:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;add &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;targetHost&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;localhost&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;allowedPorts&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;3389&lt;/SPAN&gt;" &lt;SPAN style="COLOR: blue"&gt;/&amp;gt; &lt;/SPAN&gt;project the local machine into Service Bus and only allow Remote Desktop (3389) 
&lt;LI&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;add &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;targetHost&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;localhost&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;allowedPorts&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;3389,1433&lt;/SPAN&gt;" &lt;SPAN style="COLOR: blue"&gt;/&amp;gt; &lt;/SPAN&gt;project the local machine into Service Bus and allow Remote Desktop (3389) and SQL Server TDS (1433) 
&lt;LI&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;add &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;targetHost&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;localhost&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;allowedPorts&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;*&lt;/SPAN&gt;" &lt;SPAN style="COLOR: blue"&gt;/&amp;gt; &lt;/SPAN&gt;project the local machine into Service Bus and only allow any TCP port connection 
&lt;LI&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;add &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;targetHost&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;localhost&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;allowedPipes&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;sql/query&lt;/SPAN&gt;" &lt;SPAN style="COLOR: blue"&gt;/&amp;gt; &lt;/SPAN&gt;project the local machine into Service Bus and allow no TCP connections but all named pipe connections to \.\pipes\sql\query 
&lt;LI&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;add &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;targetHost&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;otherbox&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;allowedPorts&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;1433&lt;/SPAN&gt;" &lt;SPAN style="COLOR: blue"&gt;/&amp;gt; &lt;/SPAN&gt;project the machine ?otherbox? into Service Bus and allow SQL Server TDS connections via TCP &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Agent&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The agent?s exe file is ?PortBridgeAgent.exe? and is also both a console app and a Windows Service. &lt;/P&gt;
&lt;P&gt;The app.config file on the Agent side (PortBridgeAgent/app.config, PortBridgeAgent.exe.config in the binaries folder) specifies which ports or pipes you want to project into the Agent machine and whether and how you want to firewall these ports. The firewall rules here are not interacting with your local firewall. This is an additional layer of protection.&lt;/P&gt;&lt;PRE class=code&gt;&lt;SPAN style="COLOR: blue"&gt;  &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;portBridgeAgent &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;serviceBusNamespace&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;mysolution&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;serviceBusIssuerName&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;owner&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;serviceBusIssuerSecret&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;xxxxxxxx&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;&amp;gt;
    &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;portMappings&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;
      &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;port &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;localTcpPort&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;13389&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;targetHost&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;mymachine&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;remoteTcpPort&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;3389&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;&amp;gt;
        &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;firewallRules&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;
          &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;rule &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;source&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;127.0.0.1&lt;/SPAN&gt;" &lt;SPAN style="COLOR: blue"&gt;/&amp;gt;
          &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;rule &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;sourceRangeBegin&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;10.0.0.0&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;sourceRangeEnd&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;10.255.255.255&lt;/SPAN&gt;" &lt;SPAN style="COLOR: blue"&gt;/&amp;gt;
        &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;firewallRules&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;
      &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;port&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;
    &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;portMappings&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;
  &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;portBridgeAgent&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;A href="http://11011.net/software/vspaste"&gt;&lt;/A&gt;
&lt;P&gt;Again, the &lt;EM&gt;serviceBusNamespace&lt;/EM&gt; attribute takes your Service Bus namespace name, and the &lt;EM&gt;serviceBusIssuerSecret&lt;/EM&gt; the respective secret. &lt;/P&gt;
&lt;P&gt;The &lt;EM&gt;portMappings&lt;/EM&gt; collection holds the individual ports or pipes you want to bring onto the local machine. Shown above is a mapping of Remote Desktop (port 3389 on the machine with the computer name or &lt;EM&gt;localHostName&lt;/EM&gt; ?mymachine?) to the local port 13389. Once Service and Agent are running, you can connect to the agent machine on port 13389 using the Remote Desktop client ? with PortBridge mapping that to port 3389 on the remote box. &lt;/P&gt;
&lt;P&gt;The &lt;EM&gt;firewallRules&lt;/EM&gt; collection allows (un-)constraining the TCP clients that may connect to the projected port. By default, only connections from the same machine are permitted.&lt;/P&gt;
&lt;P&gt;For named pipes, the configuration is similar, even though there are no firewall rules and named pipes are always constrained to local connectivity by a set of ACLs that are applied to the pipe. Pipe names must be relative. Here?s how a named pipe projection of a default SQL Server instance could look like:&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;port &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;localPipe&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;sql/remote&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;targetHost&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;mymachine&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;remotePipe&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;sql/query&lt;/SPAN&gt;"/&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;A href="http://11011.net/software/vspaste"&gt;&lt;/A&gt;
&lt;P&gt;There?s more to write about this, but how about I let you take a look at the code first. I?ve also included two setup projects that can easily install Agent and Service as Windows Services. You obviously don?t have to use those. &lt;/P&gt;&lt;A href="http://vasters.com/clemensv/content/binary/PortBridge.zip"&gt;PortBridge.zip (91.18 KB)&lt;/A&gt;&lt;img width="0" height="0" src="http://vasters.com/clemensv/cptrk.ashx?id=3e35d8bd-b755-453f-8c63-1a57c570eb4c"&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9924406" width="1" height="1"&gt;</description>
      <pubDate>Wed, 18 Nov 2009 08:37:28 Z</pubDate>
      <a10:content type="text">&lt;P&gt;Building ?hybrid? cloud applications where parts of an an app lives up in a cloud infrastructure and other parts of the infrastructure live at a hosting site, or a data center, or even in your house ought to be simple ? especially in this day and age of Web services. You create a Web service, make it accessible through your firewall and NAT, and the the cloud-hosted app calls it. That?s as easy as it ought to be.&lt;/P&gt;
&lt;P&gt;Unfortunately it?s not always that easy. If the server sits behind an Internet connection with dynamically assigned IP addresses, if the upstream ISP is blocking select ports, if it?s not feasible to open up inbound firewall ports, or if you have no influence over the infrastructure whatsoever, reaching an on-premise service from the cloud (or anywhere else) is a difficult thing to do. For these scenarios (and others) our team is building the &lt;EM&gt;&lt;A href="http://msdn.microsoft.com/en-us/azure/netservices.aspx"&gt;Windows Azure platform AppFabric&lt;/A&gt; Service Bus&lt;/EM&gt; (friends call us just &lt;EM&gt;Service Bus&lt;/EM&gt;). &lt;/P&gt;
&lt;P&gt;Now ? the Service Bus and the client bits in the &lt;EM&gt;Microsoft.ServiceBus.dll &lt;/EM&gt;assembly are great if you have services can can be readily hooked up into the Service Bus because they?re built with WCF. For services that aren?t built with WCF, but are at least using HTTP, I?ve &lt;A href="http://vasters.com/clemensv/PermaLink,guid,83edb04a-5696-401c-a919-8c1f379d130c.aspx"&gt;previously shown a way&lt;/A&gt; to hook them into Service Bus and have also demoed an updated version of that capability at Sun?s Java One. I?ll release an update for those bits tomorrow after my talk at PDC09 ? the version currently here on my blog (ironically) doesn?t play well with SOAP and also doesn?t have rewrite capabilities for WSDL. The new version does. &lt;/P&gt;
&lt;P&gt;But what if your service isn?t a WCF service or doesn?t speak HTTP? What if it speaks SMTP, SNMP, POP, IMAP, RDP, TDS, SSH, ETC? &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Introducing Port Bridge&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;?Port Bridge? ? which is just a descriptive name for this code sample, not an attempt at branding ? is a point-to-point tunneling utility to help with these scenarios. Port Bridge consists of two components, the ?Port Bridge Service? and the ?Port Bridge Agent?. Here?s a picture:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://vasters.com/clemensv/content/binary/WindowsLiveWriter/865a80e15ca0_D9A4/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title=image border=0 alt=image src="http://vasters.com/clemensv/content/binary/WindowsLiveWriter/865a80e15ca0_D9A4/image_thumb.png" width=611 height=220&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;The Agent?s job is to listen for and accept TCP or Named Pipe connections on a configurable port or local pipe name. The Service?s job is to accept for incoming connections from the Agent, establish a duplex channel with the Agent, and pump the data from the Agent to the actual listening service ? and vice versa. It?s actually quite simple. In the picture above you see that the Service is configured to connect to a SQL Server listening at the SQL Server default port 1433 and that the Agent ? running on a different machine, is listening on port 1433 as well, thus mapping the remote SQL Server onto the Agent machine as if it ran there. You can (and I think of that as to be more common) map the service on the Agent to any port you like ? say higher up at 41433.&lt;/P&gt;
&lt;P&gt;In order to increase the responsiveness and throughput for protocols that are happy to kill and reestablish connections such as HTTP does, ?Port Bridge? is always multiplexing concurrent traffic that?s flowing between two parties on the same logical socket. When using Port Bridge to bridge to a remote HTTP proxy that the Service machine can see, but the Agent machine can?t see (which turns out to be the at-home scenario that this capability emerged from) there are very many and very short-lived connections being tunneled through the channel. Creating a new Service Bus channel for each of these connections is feasible ? but not very efficient. Holding on to a connection for an extended period of time and multiplexing traffic over it is also beneficial in the Port Bridge case because it is using the Service Bus &lt;EM&gt;Hybrid&lt;/EM&gt; connection mode by default. With &lt;EM&gt;Hybrid&lt;/EM&gt;, all connections are first established through the Service Bus Relay and then our bits do a little ?NAT dance? trying to figure out whether there?s a way to connect both parties with a direct socket ? if that works the connection gets upgraded to the most direct connections in-flight. The probing, handshake, and upgrade of the socket may take 2-20 seconds and there?s some degree of luck involved to get that direct socket established on a very busy NAT ? and thus we want to maximize the use of that precious socket instead of throwing it away all the time.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;That seems familiar?!&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;You may notice that &lt;A href="http://vasters.com/clemensv/PermaLink,guid,26dc5df1-8b8c-4f71-8765-8904e584505b.aspx"&gt;SocketShifter&lt;/A&gt; (built by our friends at &lt;A href="http://www.aws.net/"&gt;AWS in the UK&lt;/A&gt;) is quite similar to Port Bridge. Even though the timing of the respective releases may not suggest it, Port Bridge is indeed Socketshifter?s older brother. Because we couldn?t make up our mind on whether to release Port Bridge for a while, I had AWS take a look at the service contract shown below and explained a few principles that I?m also explaining here and they had a first version of Socketshifter running within a few hours. There?s nothing wrong with having two variants of the same thing. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;How does it work?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Since I?m publishing this as a sample, I obviously need to spend a little time on the ?how?, even I?ll limit that here and will explain that in more detail in a future post. At the heart of the app, the contract that?s used between the Agent and the Service is a simple duplex WCF contract:&lt;/P&gt;&lt;PRE class=code&gt;    [&lt;SPAN style="COLOR: #2b91af"&gt;ServiceContract&lt;/SPAN&gt;(Namespace=&lt;SPAN style="COLOR: #a31515"&gt;"n:"&lt;/SPAN&gt;, Name=&lt;SPAN style="COLOR: #a31515"&gt;"idx"&lt;/SPAN&gt;, CallbackContract=&lt;SPAN style="COLOR: blue"&gt;typeof&lt;/SPAN&gt;(&lt;SPAN style="COLOR: #2b91af"&gt;IDataExchange&lt;/SPAN&gt;), SessionMode=&lt;SPAN style="COLOR: #2b91af"&gt;SessionMode&lt;/SPAN&gt;.Required)]
    &lt;SPAN style="COLOR: blue"&gt;public interface &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;IDataExchange
    &lt;/SPAN&gt;{
        [&lt;SPAN style="COLOR: #2b91af"&gt;OperationContract&lt;/SPAN&gt;(Action=&lt;SPAN style="COLOR: #a31515"&gt;"c"&lt;/SPAN&gt;, IsOneWay = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;, IsInitiating=&lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;)]
        &lt;SPAN style="COLOR: blue"&gt;void &lt;/SPAN&gt;Connect(&lt;SPAN style="COLOR: blue"&gt;string &lt;/SPAN&gt;i);
        [&lt;SPAN style="COLOR: #2b91af"&gt;OperationContract&lt;/SPAN&gt;(Action = &lt;SPAN style="COLOR: #a31515"&gt;"w"&lt;/SPAN&gt;, IsOneWay = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;)]
        &lt;SPAN style="COLOR: blue"&gt;void &lt;/SPAN&gt;Write(&lt;SPAN style="COLOR: #2b91af"&gt;TransferBuffer &lt;/SPAN&gt;d);
        [&lt;SPAN style="COLOR: #2b91af"&gt;OperationContract&lt;/SPAN&gt;(Action = &lt;SPAN style="COLOR: #a31515"&gt;"d"&lt;/SPAN&gt;, IsOneWay = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;, IsTerminating = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;)]
        &lt;SPAN style="COLOR: blue"&gt;void &lt;/SPAN&gt;Disconnect();
    }&lt;/PRE&gt;&lt;A href="http://11011.net/software/vspaste"&gt;&lt;/A&gt;
&lt;P&gt;There?s a way to establish a session, send data either way, and close the session. The &lt;EM&gt;TransferBuffer&lt;/EM&gt; type is really just a trick to avoid extra buffer copies during serialization for efficiency reasons. But that?s it. The rest of Port Bridge is a set of queue-buffered streams and pumps to make the data packets flow smoothly and to accept inbound sockets/pipes and dispatch them out to the proxied services. What?s noteworthy is that Port Bridge doesn?t use WCF streaming, but sends data in chunks ? which allows for much better flow control and enables multiplexing.&lt;/P&gt;
&lt;P&gt;Now you might say &lt;EM&gt;You are using a WCF ServiceContract?&lt;/EM&gt;&amp;nbsp;&lt;EM&gt;Isn?t that using SOAP and doesn?t that cause ginormous overhead?&lt;/EM&gt; No, it doesn?t. We?re using the WCF binary encoder in session mode here. That?s about as efficient as you can get it on the wire with serialized data. The per-frame SOAP overhead for net.tcp with the binary encoder in session mode is in the order of 40-50 bytes per message because of dictionary-based metadata compression. The binary encoder also isn?t doing any base64 trickery but treats binary as binary ? one byte is one byte. Port Bridge is using a default frame size of 64K (which gets filled up in high-volume streaming cases due to the built-in Nagling support) and so we?re looking at an overhead of far less than 0.1%. That?s not shabby. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;How do I use it?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This is a code sample and thus you?ll have to build it using Visual Studio 2008. You?ll find three code projects: &lt;EM&gt;PortBridge&lt;/EM&gt; (the Service), &lt;EM&gt;PortBridgeAgent&lt;/EM&gt; (the Agent), and the &lt;EM&gt;Microsoft.Samples.ServiceBus.Connections&lt;/EM&gt; assembly that contains the bulk of the logic for Port Bridge. It?s mostly straightforward to embed the agent side or the service side into other hosts and I?ll show that in a separate post. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Service&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The service?s exe file is ?PortBridge.exe? and is both a console app and a Windows Service. If the Windows Service isn?t registered, the app will always start as a console app. If the Windows Service is registered (with the installer or with installutil.exe) you can force console-mode with the ?c command line option.&lt;/P&gt;
&lt;P&gt;The app.config file on the Service Side (PortBridge/app.config, PortBridge.exe.config in the binaries folder) specifies what ports or named pipes you want to project into Service Bus:&lt;/P&gt;&lt;PRE class=code&gt;&lt;SPAN style="COLOR: blue"&gt;  &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;portBridge &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;serviceBusNamespace&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;mynamespace&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;serviceBusIssuerName&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;owner&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;serviceBusIssuerSecret&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;xxxxxxxx&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;localHostName&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;mybox&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;&amp;gt;
    &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;hostMappings&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;
      &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;add &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;targetHost&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;localhost&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;allowedPorts&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;3389&lt;/SPAN&gt;" &lt;SPAN style="COLOR: blue"&gt;/&amp;gt;
    &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;hostMappings&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;
  &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;portBridge&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;A href="http://11011.net/software/vspaste"&gt;&lt;/A&gt;
&lt;P&gt;The &lt;EM&gt;serviceBusNamespace&lt;/EM&gt; attribute takes your Service Bus namespace name, and the &lt;EM&gt;serviceBusIssuerSecret&lt;/EM&gt; the respective secret. The &lt;EM&gt;serviceBusIssuerName&lt;/EM&gt; should remain ?owner? unless you know why you want to change it. If you don?t have an &lt;EM&gt;AppFabric &lt;/EM&gt;account you might not understand what I?m writing about: &lt;A href="https://netservices.azure.com"&gt;Go make one&lt;/A&gt;.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;The &lt;EM&gt;localHostName&lt;/EM&gt; attribute is optional and when set, it?s the name that?s being used to map ?localhost? into your Service Bus namespace. By default the name that?s being used is the good old Windows computer-name.&lt;/P&gt;
&lt;P&gt;The &lt;EM&gt;hostMappings &lt;/EM&gt;section contains a list of hosts and rules for what you want to project out to Service Bus. Mind that all inbound connections to the endpoints generated from the host mappings section are protected by the Access Control service and require a token that grants access to your namespace ? which is already very different from opening up a port in your firewall. If you open up port 3389 (Remote Desktop) through your firewall and NAT, everyone can walk up to that port and try their password-guessing skills. If you open up port 3389 via Port Bridge, you first need to get through the Access Control gate before you can even get at the remote port. &lt;/P&gt;
&lt;P&gt;New host mappings are added with the &lt;EM&gt;add&lt;/EM&gt; element. You can add any host that the machine running the Port Bridge service can ?see? via the network. The &lt;EM&gt;allowedPorts &lt;/EM&gt;and &lt;EM&gt;allowedPipes&lt;/EM&gt; attributes define with TCP ports and/or which local named pipes are accessible. Examples:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;add &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;targetHost&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;localhost&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;allowedPorts&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;3389&lt;/SPAN&gt;" &lt;SPAN style="COLOR: blue"&gt;/&amp;gt; &lt;/SPAN&gt;project the local machine into Service Bus and only allow Remote Desktop (3389) 
&lt;LI&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;add &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;targetHost&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;localhost&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;allowedPorts&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;3389,1433&lt;/SPAN&gt;" &lt;SPAN style="COLOR: blue"&gt;/&amp;gt; &lt;/SPAN&gt;project the local machine into Service Bus and allow Remote Desktop (3389) and SQL Server TDS (1433) 
&lt;LI&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;add &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;targetHost&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;localhost&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;allowedPorts&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;*&lt;/SPAN&gt;" &lt;SPAN style="COLOR: blue"&gt;/&amp;gt; &lt;/SPAN&gt;project the local machine into Service Bus and only allow any TCP port connection 
&lt;LI&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;add &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;targetHost&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;localhost&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;allowedPipes&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;sql/query&lt;/SPAN&gt;" &lt;SPAN style="COLOR: blue"&gt;/&amp;gt; &lt;/SPAN&gt;project the local machine into Service Bus and allow no TCP connections but all named pipe connections to \.\pipes\sql\query 
&lt;LI&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;add &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;targetHost&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;otherbox&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;allowedPorts&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;1433&lt;/SPAN&gt;" &lt;SPAN style="COLOR: blue"&gt;/&amp;gt; &lt;/SPAN&gt;project the machine ?otherbox? into Service Bus and allow SQL Server TDS connections via TCP &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Agent&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The agent?s exe file is ?PortBridgeAgent.exe? and is also both a console app and a Windows Service. &lt;/P&gt;
&lt;P&gt;The app.config file on the Agent side (PortBridgeAgent/app.config, PortBridgeAgent.exe.config in the binaries folder) specifies which ports or pipes you want to project into the Agent machine and whether and how you want to firewall these ports. The firewall rules here are not interacting with your local firewall. This is an additional layer of protection.&lt;/P&gt;&lt;PRE class=code&gt;&lt;SPAN style="COLOR: blue"&gt;  &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;portBridgeAgent &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;serviceBusNamespace&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;mysolution&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;serviceBusIssuerName&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;owner&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;serviceBusIssuerSecret&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;xxxxxxxx&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;&amp;gt;
    &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;portMappings&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;
      &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;port &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;localTcpPort&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;13389&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;targetHost&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;mymachine&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;remoteTcpPort&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;3389&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;&amp;gt;
        &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;firewallRules&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;
          &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;rule &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;source&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;127.0.0.1&lt;/SPAN&gt;" &lt;SPAN style="COLOR: blue"&gt;/&amp;gt;
          &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;rule &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;sourceRangeBegin&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;10.0.0.0&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;sourceRangeEnd&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;10.255.255.255&lt;/SPAN&gt;" &lt;SPAN style="COLOR: blue"&gt;/&amp;gt;
        &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;firewallRules&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;
      &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;port&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;
    &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;portMappings&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;
  &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;portBridgeAgent&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;A href="http://11011.net/software/vspaste"&gt;&lt;/A&gt;
&lt;P&gt;Again, the &lt;EM&gt;serviceBusNamespace&lt;/EM&gt; attribute takes your Service Bus namespace name, and the &lt;EM&gt;serviceBusIssuerSecret&lt;/EM&gt; the respective secret. &lt;/P&gt;
&lt;P&gt;The &lt;EM&gt;portMappings&lt;/EM&gt; collection holds the individual ports or pipes you want to bring onto the local machine. Shown above is a mapping of Remote Desktop (port 3389 on the machine with the computer name or &lt;EM&gt;localHostName&lt;/EM&gt; ?mymachine?) to the local port 13389. Once Service and Agent are running, you can connect to the agent machine on port 13389 using the Remote Desktop client ? with PortBridge mapping that to port 3389 on the remote box. &lt;/P&gt;
&lt;P&gt;The &lt;EM&gt;firewallRules&lt;/EM&gt; collection allows (un-)constraining the TCP clients that may connect to the projected port. By default, only connections from the same machine are permitted.&lt;/P&gt;
&lt;P&gt;For named pipes, the configuration is similar, even though there are no firewall rules and named pipes are always constrained to local connectivity by a set of ACLs that are applied to the pipe. Pipe names must be relative. Here?s how a named pipe projection of a default SQL Server instance could look like:&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;port &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;localPipe&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;sql/remote&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;targetHost&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;mymachine&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;remotePipe&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;sql/query&lt;/SPAN&gt;"/&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;A href="http://11011.net/software/vspaste"&gt;&lt;/A&gt;
&lt;P&gt;There?s more to write about this, but how about I let you take a look at the code first. I?ve also included two setup projects that can easily install Agent and Service as Windows Services. You obviously don?t have to use those. &lt;/P&gt;&lt;A href="http://vasters.com/clemensv/content/binary/PortBridge.zip"&gt;PortBridge.zip (91.18 KB)&lt;/A&gt;&lt;img width="0" height="0" src="http://vasters.com/clemensv/cptrk.ashx?id=3e35d8bd-b755-453f-8c63-1a57c570eb4c"&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9924406" width="1" height="1"&gt;</a10:content>
    </item>
    <item>
      <guid isPermaLink="true">http://blogs.msdn.com/justinjsmith/archive/2009/11/15/mgmt-config-sample-for-wlid-facebook-connect-sample.aspx</guid>
      <link>http://blogs.msdn.com/justinjsmith/archive/2009/11/15/mgmt-config-sample-for-wlid-facebook-connect-sample.aspx</link>
      <author>Justin Smith's Blog|http://blogs.msdn.com/justinjsmith/default.aspx</author>
      <title>Mgmt Config sample for WLID / Facebook Connect sample</title>
      <description>&lt;p&gt;Now that we have a &lt;a href="http://blogs.msdn.com/justinjsmith/archive/2009/11/14/management-browser-uploaded.aspx"&gt;mgmt tool&lt;/a&gt;, I can provide you with a template so you can setup the ACS part of the WLID / Facebook Connect sample with less effort. Here?s the XML configuration:&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:9ee1925c-7c6d-46a1-9127-c336ecd0129e" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ServiceNamespace &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;xmlns:xsi&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="http://www.w3.org/2001/XMLSchema-instance"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; xmlns:xsd&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="http://www.w3.org/2001/XMLSchema"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Issuers&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Issuer &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;handle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="acswebauth"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;IssuerName&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;acswebauth&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;IssuerName&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Algorithm&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Symmetric256BitKey&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Algorithm&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;CurrentKey&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;gyiepxNtc7RkCZuvV6FyEPWOp788uc1T0DMSZ9c/5QA=&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;CurrentKey&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;PreviousKey&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;bAO0llCgF5C00GW/h7Zp0lt2WAe3WRrdIj42UMbds+A=&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;PreviousKey&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Issuer&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Issuers&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Scopes&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Scope &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;handle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="root"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;AppliesTo&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;http://acswebauth.com&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;AppliesTo&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;TokenPolicyHandle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;root&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;TokenPolicyHandle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Rules&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Rule &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;handle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="wlidpassthrough"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;PassThrough&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimIssuerHandle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;acswebauth&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimIssuerHandle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;uuid&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimValue &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;xsi:nil&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="true"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;OutputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;userid&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;OutputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;OutputClaimValue &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;xsi:nil&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="true"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Rule&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Rule &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;handle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="idppassthrough"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;PassThrough&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimIssuerHandle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;acswebauth&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimIssuerHandle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;idp&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimValue &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;xsi:nil&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="true"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;OutputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;idp&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;OutputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;OutputClaimValue &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;xsi:nil&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="true"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Rule&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Rule &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;handle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="fbsession"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;PassThrough&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimIssuerHandle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;acswebauth&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimIssuerHandle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;fbsession&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimValue &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;xsi:nil&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="true"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;OutputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;fbsession&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;OutputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;OutputClaimValue &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;xsi:nil&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="true"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Rule&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Rules&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Scope&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Scopes&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;TokenPolicies&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;TokenPolicy &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;handle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="root"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;TokenLifetime&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;1200&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;TokenLifetime&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;SigningKey&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;AZYQZFGR1epDZV3NC+sBEgOXVY4vIWTPZnEg28mDXy8=&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;SigningKey&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;TokenPolicy&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;TokenPolicies&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;ServiceNamespace&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;Copy this to your clipboard, save locally, then click the load button&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/MgmtConfigsampleforWLIDFacebookConnectsa_C08C/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/MgmtConfigsampleforWLIDFacebookConnectsa_C08C/image_thumb.png" width="244" height="58" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Browse to the file on your local machine, then click the Save to Cloud button. &lt;strong&gt;&lt;em&gt;BE CAREFUL: clicking that button will erase the config in your ACS service namespace. We?ll get the merge written soon :)&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9922720" width="1" height="1"&gt;</description>
      <pubDate>Sun, 15 Nov 2009 21:41:33 Z</pubDate>
      <a10:content type="text">&lt;p&gt;Now that we have a &lt;a href="http://blogs.msdn.com/justinjsmith/archive/2009/11/14/management-browser-uploaded.aspx"&gt;mgmt tool&lt;/a&gt;, I can provide you with a template so you can setup the ACS part of the WLID / Facebook Connect sample with less effort. Here?s the XML configuration:&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:9ee1925c-7c6d-46a1-9127-c336ecd0129e" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ServiceNamespace &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;xmlns:xsi&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="http://www.w3.org/2001/XMLSchema-instance"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; xmlns:xsd&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="http://www.w3.org/2001/XMLSchema"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Issuers&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Issuer &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;handle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="acswebauth"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;IssuerName&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;acswebauth&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;IssuerName&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Algorithm&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Symmetric256BitKey&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Algorithm&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;CurrentKey&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;gyiepxNtc7RkCZuvV6FyEPWOp788uc1T0DMSZ9c/5QA=&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;CurrentKey&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;PreviousKey&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;bAO0llCgF5C00GW/h7Zp0lt2WAe3WRrdIj42UMbds+A=&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;PreviousKey&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Issuer&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Issuers&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Scopes&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Scope &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;handle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="root"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;AppliesTo&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;http://acswebauth.com&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;AppliesTo&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;TokenPolicyHandle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;root&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;TokenPolicyHandle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Rules&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Rule &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;handle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="wlidpassthrough"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;PassThrough&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimIssuerHandle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;acswebauth&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimIssuerHandle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;uuid&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimValue &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;xsi:nil&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="true"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;OutputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;userid&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;OutputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;OutputClaimValue &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;xsi:nil&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="true"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Rule&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Rule &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;handle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="idppassthrough"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;PassThrough&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimIssuerHandle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;acswebauth&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimIssuerHandle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;idp&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimValue &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;xsi:nil&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="true"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;OutputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;idp&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;OutputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;OutputClaimValue &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;xsi:nil&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="true"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Rule&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Rule &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;handle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="fbsession"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;PassThrough&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimIssuerHandle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;acswebauth&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimIssuerHandle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;fbsession&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;InputClaimValue &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;xsi:nil&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="true"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;OutputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;fbsession&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;OutputClaimType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
          &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;OutputClaimValue &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;xsi:nil&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="true"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Rule&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Rules&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Scope&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Scopes&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;TokenPolicies&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;TokenPolicy &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;handle&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="root"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;TokenLifetime&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;1200&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;TokenLifetime&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;SigningKey&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;AZYQZFGR1epDZV3NC+sBEgOXVY4vIWTPZnEg28mDXy8=&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;SigningKey&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;TokenPolicy&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;TokenPolicies&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;ServiceNamespace&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;Copy this to your clipboard, save locally, then click the load button&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/MgmtConfigsampleforWLIDFacebookConnectsa_C08C/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/MgmtConfigsampleforWLIDFacebookConnectsa_C08C/image_thumb.png" width="244" height="58" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Browse to the file on your local machine, then click the Save to Cloud button. &lt;strong&gt;&lt;em&gt;BE CAREFUL: clicking that button will erase the config in your ACS service namespace. We?ll get the merge written soon :)&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9922720" width="1" height="1"&gt;</a10:content>
    </item>
    <item>
      <guid isPermaLink="true">http://blogs.msdn.com/justinjsmith/archive/2009/11/15/acs-integration-with-windows-live-id-facebook-connect.aspx</guid>
      <link>http://blogs.msdn.com/justinjsmith/archive/2009/11/15/acs-integration-with-windows-live-id-facebook-connect.aspx</link>
      <author>Justin Smith's Blog|http://blogs.msdn.com/justinjsmith/default.aspx</author>
      <title>ACS integration with Windows Live ID &amp; Facebook Connect</title>
      <description>&lt;p&gt;I?ve received several requests regarding ACS and Windows Live ID integration for websites. This post describes what you can do with ACS and Windows Live ID today (with the new release of ACS). It takes a bit of code, but the integration is pretty straightforward.&lt;/p&gt;  &lt;p&gt;Note that this code isn?t hardened and it relies heavily on server side code. I?m showing it as an architectural sample, and I?m showing it now based on the number of requests I?ve received for the sample. In the future, I?ll work on a better sample that?s easier to setup (and possibly one that uses javascript &amp;amp; cross domain iFrames).&lt;/p&gt;  &lt;p&gt;I?ll be discussing WLID Web Authentication as an integration point. The same basic model can apply to other WLID capabilities and other web identity providers. The code sample also has Facebook connect integration, but I won?t go into any detail about how it works in this post (in the future I will).&lt;/p&gt;  &lt;p&gt;The basic model is fairly simple. The swim lane and description is shown below.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSintegrationwithWindowsLiveIDFacebookC_BB97/clip_image002_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSintegrationwithWindowsLiveIDFacebookC_BB97/clip_image002_thumb.jpg" width="491" height="349" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;1. A user browses to your website and clicks a login button.&lt;/p&gt;  &lt;p&gt;2. This button redirects the user to the WLID Redirector. The code for this redirector is in this post. For now, you?ll need to write and host this code yourself.&lt;/p&gt;  &lt;p&gt;3. The redirector redirects the browser to the WLID login page with correct WLID AppID. From there, the user logs into WLID using their credentials.&lt;/p&gt;  &lt;p&gt;4. Upon a successful login, WLID returns the browser to the redirector. The response contains a unique pair-wise ID for that user. &lt;/p&gt;  &lt;p&gt;5. Once the redirector receives the user ID, it packages that ID into an ACS token request (OAuth WRAP request for an Access Token)&lt;/p&gt;  &lt;p&gt;6. ACS will issue a token for that user and return it to the redirector (the token is a SWT).&lt;/p&gt;  &lt;p&gt;7. From there, the redirector will return the ACS token to the website&lt;/p&gt;  &lt;p&gt;8. The website will validate the token. If validation passes, the website will write the token to a cookie.&lt;/p&gt;  &lt;p&gt;9. (Not shown on the diagram) On subsequent requests to the website, the website will use the cookie to authenticate and authorize the user.&lt;/p&gt;  &lt;p&gt;10. (Not shown on the diagram) If the user logs out, the website will clear the cookie and send the browser to the redirector. From there, the redirector will send the browser to WLID for logout. This will remove the WLID cookie for that website.&lt;/p&gt;  &lt;h5&gt;Setup Steps IdpRedirector project&lt;/h5&gt;  &lt;p&gt;1. First, you?ll need to have a domain name for the redirector. You can host the redirector in Azure, or your own server. The site needs to have a public address.&lt;/p&gt;  &lt;p&gt;2. After you have the address, go to the Live ID developer portal at &lt;a href="http://go.microsoft.com/fwlink/?LinkID=144070"&gt;http://go.microsoft.com/fwlink/?LinkID=144070&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;3. Setup your WLID developer account. The steps are at &lt;a href="http://msdn.microsoft.com/en-us/library/bb676626.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb676626.aspx&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;The only trick here is to be very careful about the return URL. For this sample, you?ll want to enter http://&amp;lt;yourdomainname&amp;gt;/wlidfederation-handler.aspx, where &amp;lt;yourdomainname&amp;gt; is the hostname + any subdomains for your redirector.&lt;/p&gt;  &lt;p&gt;4. Copy the Application ID and Secret shown below&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSintegrationwithWindowsLiveIDFacebookC_BB97/clip_image004_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSintegrationwithWindowsLiveIDFacebookC_BB97/clip_image004_thumb.jpg" width="504" height="181" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;5. Open the VS solution in the zip at the bottom of this post. &lt;/p&gt;  &lt;p&gt;6. In the WebRedirector project, open the web.config and edit the values below with your Application ID and secret.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:e1eb2505-1e4a-4d9c-b64b-5a88c8984ec5" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="wll_appid"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="yourappid"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="wll_secret"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="yoursecret"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;7. Change the rploginpage and rplogoutpage to the URL for the RelyingPartyWebsite project. I used Cassini in this project, so your port number will likely change.&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:a50059eb-e384-4909-b6bd-b86d08fe9542" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="rploginpage"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="http://localhost:32210/RelyingPartyWebsite/login.aspx"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="rplogoutpage"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="http://localhost:32210/RelyingPartyWebsite/logout.aspx"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;8. Update the ACS specific settings. &lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:4c16b904-db26-4382-aa36-c0855e39fec0" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="serviceNamespace"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="updateToYourServiceNamespace"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="clientIssuerKey"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="updateToYourIssuerKey"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="clientIssuerName"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="updateToYourIssuerName"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="tokenPolicyKey"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="updateToYourTokenPolicyKey"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="acsHostName"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="accesscontrol.windows.net"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="applies_to"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="updateToYourAppliesTo"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;9. Upload the project to the domain specified in (3)&lt;/p&gt;

&lt;h5&gt;Setup Steps RelyingPartyWebsite project&lt;/h5&gt;

&lt;p&gt;10. Open the web.config of the RelyingPartyWebsite in VS. Update the appSettings below to the settings for your ACS Service Namespace &amp;amp; the domain of your IdPRedirector.&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:344c6a2b-18ec-41b7-9149-9abd128e2b98" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="idpRedirectHost"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="updateToYourRedirectorHost"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="serviceNamespace"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="updateToYourServiceNamespace"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="tokenPolicyKey"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="updateToYourTokenPolicyKey"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="acsHostName"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="accesscontrol.windows.net"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="applies_to"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="updateToYourScopeAppliesTo"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;h5&gt;Running The Sample&lt;/h5&gt;

&lt;p&gt;11. Start the RelyingPartyWebsite and browse to the Default.aspx page. You should see something like the following:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSintegrationwithWindowsLiveIDFacebookC_BB97/clip_image006_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSintegrationwithWindowsLiveIDFacebookC_BB97/clip_image006_thumb.jpg" width="504" height="183" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;12. If you click on the WLID icon, you?ll be redirected to the IdPRedirector, then to WLID. Enter your creds at WLID &amp;amp; you should be redirected back to the IdPRedirector, then to the login.aspx page in RelyingPartyWebsite. If all is well, you?ll see something like:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSintegrationwithWindowsLiveIDFacebookC_BB97/clip_image008_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSintegrationwithWindowsLiveIDFacebookC_BB97/clip_image008_thumb.jpg" width="520" height="185" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here?s the code sample:&lt;/p&gt;
&lt;iframe style="padding-bottom: 0px; background-color: #fcfcfc; padding-left: 0px; width: 98px; padding-right: 0px; height: 115px; padding-top: 0px" title="Preview" marginheight="0" src="http://cid-50fa692ec9deac1c.skydrive.live.com/embedicon.aspx/Code%20Samples/ServerSideWebIdentities.zip" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9922715" width="1" height="1"&gt;</description>
      <pubDate>Sun, 15 Nov 2009 21:20:28 Z</pubDate>
      <a10:content type="text">&lt;p&gt;I?ve received several requests regarding ACS and Windows Live ID integration for websites. This post describes what you can do with ACS and Windows Live ID today (with the new release of ACS). It takes a bit of code, but the integration is pretty straightforward.&lt;/p&gt;  &lt;p&gt;Note that this code isn?t hardened and it relies heavily on server side code. I?m showing it as an architectural sample, and I?m showing it now based on the number of requests I?ve received for the sample. In the future, I?ll work on a better sample that?s easier to setup (and possibly one that uses javascript &amp;amp; cross domain iFrames).&lt;/p&gt;  &lt;p&gt;I?ll be discussing WLID Web Authentication as an integration point. The same basic model can apply to other WLID capabilities and other web identity providers. The code sample also has Facebook connect integration, but I won?t go into any detail about how it works in this post (in the future I will).&lt;/p&gt;  &lt;p&gt;The basic model is fairly simple. The swim lane and description is shown below.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSintegrationwithWindowsLiveIDFacebookC_BB97/clip_image002_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSintegrationwithWindowsLiveIDFacebookC_BB97/clip_image002_thumb.jpg" width="491" height="349" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;1. A user browses to your website and clicks a login button.&lt;/p&gt;  &lt;p&gt;2. This button redirects the user to the WLID Redirector. The code for this redirector is in this post. For now, you?ll need to write and host this code yourself.&lt;/p&gt;  &lt;p&gt;3. The redirector redirects the browser to the WLID login page with correct WLID AppID. From there, the user logs into WLID using their credentials.&lt;/p&gt;  &lt;p&gt;4. Upon a successful login, WLID returns the browser to the redirector. The response contains a unique pair-wise ID for that user. &lt;/p&gt;  &lt;p&gt;5. Once the redirector receives the user ID, it packages that ID into an ACS token request (OAuth WRAP request for an Access Token)&lt;/p&gt;  &lt;p&gt;6. ACS will issue a token for that user and return it to the redirector (the token is a SWT).&lt;/p&gt;  &lt;p&gt;7. From there, the redirector will return the ACS token to the website&lt;/p&gt;  &lt;p&gt;8. The website will validate the token. If validation passes, the website will write the token to a cookie.&lt;/p&gt;  &lt;p&gt;9. (Not shown on the diagram) On subsequent requests to the website, the website will use the cookie to authenticate and authorize the user.&lt;/p&gt;  &lt;p&gt;10. (Not shown on the diagram) If the user logs out, the website will clear the cookie and send the browser to the redirector. From there, the redirector will send the browser to WLID for logout. This will remove the WLID cookie for that website.&lt;/p&gt;  &lt;h5&gt;Setup Steps IdpRedirector project&lt;/h5&gt;  &lt;p&gt;1. First, you?ll need to have a domain name for the redirector. You can host the redirector in Azure, or your own server. The site needs to have a public address.&lt;/p&gt;  &lt;p&gt;2. After you have the address, go to the Live ID developer portal at &lt;a href="http://go.microsoft.com/fwlink/?LinkID=144070"&gt;http://go.microsoft.com/fwlink/?LinkID=144070&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;3. Setup your WLID developer account. The steps are at &lt;a href="http://msdn.microsoft.com/en-us/library/bb676626.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb676626.aspx&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;The only trick here is to be very careful about the return URL. For this sample, you?ll want to enter http://&amp;lt;yourdomainname&amp;gt;/wlidfederation-handler.aspx, where &amp;lt;yourdomainname&amp;gt; is the hostname + any subdomains for your redirector.&lt;/p&gt;  &lt;p&gt;4. Copy the Application ID and Secret shown below&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSintegrationwithWindowsLiveIDFacebookC_BB97/clip_image004_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSintegrationwithWindowsLiveIDFacebookC_BB97/clip_image004_thumb.jpg" width="504" height="181" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;5. Open the VS solution in the zip at the bottom of this post. &lt;/p&gt;  &lt;p&gt;6. In the WebRedirector project, open the web.config and edit the values below with your Application ID and secret.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:e1eb2505-1e4a-4d9c-b64b-5a88c8984ec5" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="wll_appid"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="yourappid"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="wll_secret"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="yoursecret"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;7. Change the rploginpage and rplogoutpage to the URL for the RelyingPartyWebsite project. I used Cassini in this project, so your port number will likely change.&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:a50059eb-e384-4909-b6bd-b86d08fe9542" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="rploginpage"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="http://localhost:32210/RelyingPartyWebsite/login.aspx"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="rplogoutpage"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="http://localhost:32210/RelyingPartyWebsite/logout.aspx"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;8. Update the ACS specific settings. &lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:4c16b904-db26-4382-aa36-c0855e39fec0" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="serviceNamespace"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="updateToYourServiceNamespace"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="clientIssuerKey"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="updateToYourIssuerKey"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="clientIssuerName"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="updateToYourIssuerName"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="tokenPolicyKey"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="updateToYourTokenPolicyKey"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="acsHostName"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="accesscontrol.windows.net"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="applies_to"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="updateToYourAppliesTo"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;9. Upload the project to the domain specified in (3)&lt;/p&gt;

&lt;h5&gt;Setup Steps RelyingPartyWebsite project&lt;/h5&gt;

&lt;p&gt;10. Open the web.config of the RelyingPartyWebsite in VS. Update the appSettings below to the settings for your ACS Service Namespace &amp;amp; the domain of your IdPRedirector.&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:344c6a2b-18ec-41b7-9149-9abd128e2b98" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="idpRedirectHost"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="updateToYourRedirectorHost"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="serviceNamespace"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="updateToYourServiceNamespace"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="tokenPolicyKey"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="updateToYourTokenPolicyKey"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="acsHostName"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="accesscontrol.windows.net"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="applies_to"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="updateToYourScopeAppliesTo"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;h5&gt;Running The Sample&lt;/h5&gt;

&lt;p&gt;11. Start the RelyingPartyWebsite and browse to the Default.aspx page. You should see something like the following:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSintegrationwithWindowsLiveIDFacebookC_BB97/clip_image006_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSintegrationwithWindowsLiveIDFacebookC_BB97/clip_image006_thumb.jpg" width="504" height="183" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;12. If you click on the WLID icon, you?ll be redirected to the IdPRedirector, then to WLID. Enter your creds at WLID &amp;amp; you should be redirected back to the IdPRedirector, then to the login.aspx page in RelyingPartyWebsite. If all is well, you?ll see something like:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSintegrationwithWindowsLiveIDFacebookC_BB97/clip_image008_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSintegrationwithWindowsLiveIDFacebookC_BB97/clip_image008_thumb.jpg" width="520" height="185" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here?s the code sample:&lt;/p&gt;
&lt;iframe style="padding-bottom: 0px; background-color: #fcfcfc; padding-left: 0px; width: 98px; padding-right: 0px; height: 115px; padding-top: 0px" title="Preview" marginheight="0" src="http://cid-50fa692ec9deac1c.skydrive.live.com/embedicon.aspx/Code%20Samples/ServerSideWebIdentities.zip" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9922715" width="1" height="1"&gt;</a10:content>
    </item>
    <item>
      <guid isPermaLink="true">http://blogs.msdn.com/justinjsmith/archive/2009/11/14/acs-saml-adfs-v2-sample.aspx</guid>
      <link>http://blogs.msdn.com/justinjsmith/archive/2009/11/14/acs-saml-adfs-v2-sample.aspx</link>
      <author>Justin Smith's Blog|http://blogs.msdn.com/justinjsmith/default.aspx</author>
      <title>ACS SAML / ADFS v2 Sample</title>
      <description>&lt;p&gt;The November 2009 CTP of ACS integrates with Active Directory Federation Server v2. ACS can act as a bridge between enterprise identity and REST web services. &lt;/p&gt;  &lt;p&gt;The runtime flow is pretty simple (shown below).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSSAMLADFSv2Sample_C9D3/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSSAMLADFSv2Sample_C9D3/image_thumb.png" width="475" height="357" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;At runtime, the client app requests a SAML bearer token from AD FS v2. The easiest way to do this is with Windows Identity Foundation (WIF). &lt;/li&gt;    &lt;li&gt;The client app POSTs the SAML token to ACS over SSL. ACS uses configurable rules to calculate the claims in a Simple Web Token (SWT), creates a SWT, signs it, and returns it to the client app. The protocol for this exchange is OAuth WRAP. &lt;/li&gt;    &lt;li&gt;Next, the client packages the SWT in the HTTP Authorization header and sends it to the REST web service along with whatever payload the REST web service requires. &lt;/li&gt;    &lt;li&gt;Once the REST web service receives the token &amp;amp; payload, it validates the token and checks the claims in the token. The REST web services allows or denies access based on the outcome. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Viola. You have a REST web service that integrates with AD FS v2 via OAuth WRAP and SWT.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Mini AD FS setup (for this scenario only)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;There is some setup required to enable this scenario (other than acquiring an ACS Service Namespace). For starters, you?ll need an AD FS v2 server. Since this requires a domain, I?ve provided a service that replicates the basic token issuing behavior of AD FS (at the bottom of this post).&amp;#160; The only relying party trusted by this service is ACS. &lt;/p&gt;  &lt;p&gt;To setup the service, you?ll need to update the App.config file. Update the ?signingCertName? to a cert in your LocalMachine / Personal cert store. Also update the ?serviceNamespace? to your ACS service namespace.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:6d071302-13bc-4252-b2cf-8a8f4e28a026" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #FF00FF;"&gt;xml version="1.0" encoding="utf-8" &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; 
&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;configuration&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; 
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;appSettings&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="signingCertName"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="CN=localhost"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="stsBaseAddress"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="localhost/miniadfs"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="stsPath"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="Trust/13/Windows"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="serviceNamespace"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="justinpdcdemo"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="acsHostname"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="accesscontrol.windows.net"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; 
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;appSettings&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; 
&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;configuration&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;You?ll also have to setup SSL for your IIS install (&lt;a title="http://learn.iis.net/page.aspx/144/how-to-setup-ssl-on-iis-70/" href="http://learn.iis.net/page.aspx/144/how-to-setup-ssl-on-iis-70/"&gt;http://learn.iis.net/page.aspx/144/how-to-setup-ssl-on-iis-70/&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;You?ll also need to install the WIF RC. Available here: &lt;a title="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=defd2019-a61f-4327-9332-6a4b6103527a#tm" href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=defd2019-a61f-4327-9332-6a4b6103527a#tm"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=defd2019-a61f-4327-9332-6a4b6103527a#tm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From there, you should be able to run the service.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fed Metadata Setup with ACS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After you have the mini ADFS service running, you?ll want to use the Fed Metadata it publishes to create an issuer in ACS. Also in the sample below is some code that shows you how to programmatically do that.&lt;/p&gt;

&lt;p&gt;If you?d rather use a tool, you can use the Management Browser (&lt;a title="http://code.msdn.microsoft.com/acmbrowser" href="http://code.msdn.microsoft.com/acmbrowser"&gt;http://code.msdn.microsoft.com/acmbrowser&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Simply create a new Issuer, select FedMetadata from the Algorithm drop down, and set the URL of the fed metadata server. In the miniADFS server, that URL is &lt;a title="https://localhost/LocalADFSv2/FederationMetadata/2007-06/FederationMetadata.xml" href="https://localhost/LocalADFSv2/FederationMetadata/2007-06/FederationMetadata.xml"&gt;https://localhost/LocalADFSv2/FederationMetadata/2007-06/FederationMetadata.xml&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSSAMLADFSv2Sample_C9D3/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSSAMLADFSv2Sample_C9D3/image_thumb_2.png" width="566" height="397" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Creating a Scope &amp;amp; Rule for the new Issuer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Next, you?ll want to create a scope and a rule that refers to that issuer. The sample at the bottom of this post uses a scope with an applies_to URI of &lt;a href="http://localhost/samltest"&gt;http://localhost/samltest&lt;/a&gt;. You can use the Management Browser to create one.&lt;/p&gt;

&lt;p&gt;With the scope in place, we can create a rule. All rules require the name of the Issuer and a claim type in the antecedent. When you create an Issuer using Fed Metadata, the Issuer name is fixed in the Fed Metadata. My MiniADFS server uses an issuer name of &lt;a title="https://localhost/miniadfs/Trust/13/Windows" href="https://localhost/miniadfs/Trust/13/Windows"&gt;https://localhost/miniadfs/Trust/13/Windows&lt;/a&gt;. It also spits out claims of type &lt;a title="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" href="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"&gt;http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;With that data, you can create a Passthrough rule. Passthrough rules basically countersign the input claims. In this case, a passthrough rule would countersign any &lt;a title="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" href="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"&gt;http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name&lt;/a&gt; claim issued by the issuer &lt;a title="https://localhost/miniadfs/Trust/13/Windows" href="https://localhost/miniadfs/Trust/13/Windows"&gt;https://localhost/miniadfs/Trust/13/Windows&lt;/a&gt;. The consequent of the rule can be of any type you choose. To keep the token compact, I?ll use a claim type of ?name?.&lt;/p&gt;

&lt;p&gt;You can set all this up using the management browser, as shown below.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSSAMLADFSv2Sample_C9D3/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSSAMLADFSv2Sample_C9D3/image_thumb_3.png" width="590" height="416" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Acquiring A SAML Token&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With the Issuer, Scope, and Rule setup, let?s get a SAML token using WIF (the RC). The code for doing this is in the SAMLClient project from the code sample in this post. The WIF code is pretty straightforward:&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:32e2348c-5920-49e6-8eba-1e0bd80f9e39" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; GetSAMLToken()
{
    WSTrustChannelFactory trustChannelFactory &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; WSTrustChannelFactory(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; WindowsWSTrustBinding(SecurityMode.TransportWithMessageCredential),
            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; EndpointAddress(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Uri(samlUrl)));

    trustChannelFactory.TrustVersion &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; TrustVersion.WSTrust13;

    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;try&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    {
        RequestSecurityToken rst &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;
            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; RequestSecurityToken(WSTrust13Constants.RequestTypes.Issue, WSTrust13Constants.KeyTypes.Bearer);
        rst.AppliesTo &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; EndpointAddress(acsUrl);
        rst.TokenType &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Microsoft.IdentityModel.Tokens.SecurityTokenTypes.Saml2TokenProfile11;

        WSTrustChannel channel &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; (WSTrustChannel)trustChannelFactory.CreateChannel();
        GenericXmlSecurityToken token &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; channel.Issue(rst) &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; GenericXmlSecurityToken;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; tokenString &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; token.TokenXml.OuterXml;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; tokenString;
    }
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;finally&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    {
        trustChannelFactory.Close();
    }
}&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;
The only trick is to ensure you are using the Bearer key type (Yes, you can use WIF to request a Bearer token).

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using the SAML token to get a SWT&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Next, you can use the SAML token to request a SWT from ACS:&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:d69a6633-27db-4115-8b41-f6bb2f78804e" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; SendSAMLTokenToACS(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; samlToken)
{
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;try&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    {
        WebClient client &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; WebClient();
        client.BaseAddress &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; acsUrl;

        NameValueCollection parameters &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; NameValueCollection();
        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; ensure the applies_to URI is created in your ACS
        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; service namespace&lt;/span&gt;&lt;span style="color: #008000;"&gt;
&lt;/span&gt;&lt;span style="color: #000000;"&gt;        parameters.Add(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;applies_to&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;http://localhost/samltest&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);
        parameters.Add(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;wrap_SAML&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, samlToken);

        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;byte&lt;/span&gt;&lt;span style="color: #000000;"&gt;[] responseBytes &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; client.UploadValues(&lt;/span&gt;&lt;span style="color: #800000;"&gt;""&lt;/span&gt;&lt;span style="color: #000000;"&gt;, parameters);
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; response &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Encoding.UTF8.GetString(responseBytes);

        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; response
            .Split(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;)
            .Single(value &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; value.StartsWith(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;wrap_token=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, StringComparison.OrdinalIgnoreCase))
            .Split(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;)[&lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;];
    }
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;catch&lt;/span&gt;&lt;span style="color: #000000;"&gt; (WebException wex)
    {
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; value &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StreamReader(wex.Response.GetResponseStream()).ReadToEnd();
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;throw&lt;/span&gt;&lt;span style="color: #000000;"&gt;;
    }
}&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Viola! That?s all there is.&lt;/p&gt;

&lt;p&gt;Here?s the full code sample ? Let me know any feedback you have?&lt;/p&gt;
&lt;iframe style="padding-bottom: 0px; background-color: #fcfcfc; padding-left: 0px; width: 98px; padding-right: 0px; height: 115px; padding-top: 0px" title="Preview" marginheight="0" src="http://cid-50fa692ec9deac1c.skydrive.live.com/embedicon.aspx/Code%20Samples/ACSSamlDemo.zip" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9922543" width="1" height="1"&gt;</description>
      <pubDate>Sat, 14 Nov 2009 22:55:25 Z</pubDate>
      <a10:content type="text">&lt;p&gt;The November 2009 CTP of ACS integrates with Active Directory Federation Server v2. ACS can act as a bridge between enterprise identity and REST web services. &lt;/p&gt;  &lt;p&gt;The runtime flow is pretty simple (shown below).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSSAMLADFSv2Sample_C9D3/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSSAMLADFSv2Sample_C9D3/image_thumb.png" width="475" height="357" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;At runtime, the client app requests a SAML bearer token from AD FS v2. The easiest way to do this is with Windows Identity Foundation (WIF). &lt;/li&gt;    &lt;li&gt;The client app POSTs the SAML token to ACS over SSL. ACS uses configurable rules to calculate the claims in a Simple Web Token (SWT), creates a SWT, signs it, and returns it to the client app. The protocol for this exchange is OAuth WRAP. &lt;/li&gt;    &lt;li&gt;Next, the client packages the SWT in the HTTP Authorization header and sends it to the REST web service along with whatever payload the REST web service requires. &lt;/li&gt;    &lt;li&gt;Once the REST web service receives the token &amp;amp; payload, it validates the token and checks the claims in the token. The REST web services allows or denies access based on the outcome. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Viola. You have a REST web service that integrates with AD FS v2 via OAuth WRAP and SWT.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Mini AD FS setup (for this scenario only)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;There is some setup required to enable this scenario (other than acquiring an ACS Service Namespace). For starters, you?ll need an AD FS v2 server. Since this requires a domain, I?ve provided a service that replicates the basic token issuing behavior of AD FS (at the bottom of this post).&amp;#160; The only relying party trusted by this service is ACS. &lt;/p&gt;  &lt;p&gt;To setup the service, you?ll need to update the App.config file. Update the ?signingCertName? to a cert in your LocalMachine / Personal cert store. Also update the ?serviceNamespace? to your ACS service namespace.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:6d071302-13bc-4252-b2cf-8a8f4e28a026" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #FF00FF;"&gt;xml version="1.0" encoding="utf-8" &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; 
&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;configuration&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; 
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;appSettings&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="signingCertName"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="CN=localhost"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="stsBaseAddress"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="localhost/miniadfs"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="stsPath"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="Trust/13/Windows"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="serviceNamespace"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="justinpdcdemo"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="acsHostname"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="accesscontrol.windows.net"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; 
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;appSettings&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; 
&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;configuration&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;You?ll also have to setup SSL for your IIS install (&lt;a title="http://learn.iis.net/page.aspx/144/how-to-setup-ssl-on-iis-70/" href="http://learn.iis.net/page.aspx/144/how-to-setup-ssl-on-iis-70/"&gt;http://learn.iis.net/page.aspx/144/how-to-setup-ssl-on-iis-70/&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;You?ll also need to install the WIF RC. Available here: &lt;a title="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=defd2019-a61f-4327-9332-6a4b6103527a#tm" href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=defd2019-a61f-4327-9332-6a4b6103527a#tm"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=defd2019-a61f-4327-9332-6a4b6103527a#tm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From there, you should be able to run the service.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fed Metadata Setup with ACS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After you have the mini ADFS service running, you?ll want to use the Fed Metadata it publishes to create an issuer in ACS. Also in the sample below is some code that shows you how to programmatically do that.&lt;/p&gt;

&lt;p&gt;If you?d rather use a tool, you can use the Management Browser (&lt;a title="http://code.msdn.microsoft.com/acmbrowser" href="http://code.msdn.microsoft.com/acmbrowser"&gt;http://code.msdn.microsoft.com/acmbrowser&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Simply create a new Issuer, select FedMetadata from the Algorithm drop down, and set the URL of the fed metadata server. In the miniADFS server, that URL is &lt;a title="https://localhost/LocalADFSv2/FederationMetadata/2007-06/FederationMetadata.xml" href="https://localhost/LocalADFSv2/FederationMetadata/2007-06/FederationMetadata.xml"&gt;https://localhost/LocalADFSv2/FederationMetadata/2007-06/FederationMetadata.xml&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSSAMLADFSv2Sample_C9D3/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSSAMLADFSv2Sample_C9D3/image_thumb_2.png" width="566" height="397" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Creating a Scope &amp;amp; Rule for the new Issuer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Next, you?ll want to create a scope and a rule that refers to that issuer. The sample at the bottom of this post uses a scope with an applies_to URI of &lt;a href="http://localhost/samltest"&gt;http://localhost/samltest&lt;/a&gt;. You can use the Management Browser to create one.&lt;/p&gt;

&lt;p&gt;With the scope in place, we can create a rule. All rules require the name of the Issuer and a claim type in the antecedent. When you create an Issuer using Fed Metadata, the Issuer name is fixed in the Fed Metadata. My MiniADFS server uses an issuer name of &lt;a title="https://localhost/miniadfs/Trust/13/Windows" href="https://localhost/miniadfs/Trust/13/Windows"&gt;https://localhost/miniadfs/Trust/13/Windows&lt;/a&gt;. It also spits out claims of type &lt;a title="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" href="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"&gt;http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;With that data, you can create a Passthrough rule. Passthrough rules basically countersign the input claims. In this case, a passthrough rule would countersign any &lt;a title="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" href="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"&gt;http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name&lt;/a&gt; claim issued by the issuer &lt;a title="https://localhost/miniadfs/Trust/13/Windows" href="https://localhost/miniadfs/Trust/13/Windows"&gt;https://localhost/miniadfs/Trust/13/Windows&lt;/a&gt;. The consequent of the rule can be of any type you choose. To keep the token compact, I?ll use a claim type of ?name?.&lt;/p&gt;

&lt;p&gt;You can set all this up using the management browser, as shown below.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSSAMLADFSv2Sample_C9D3/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/justinjsmith/WindowsLiveWriter/ACSSAMLADFSv2Sample_C9D3/image_thumb_3.png" width="590" height="416" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Acquiring A SAML Token&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With the Issuer, Scope, and Rule setup, let?s get a SAML token using WIF (the RC). The code for doing this is in the SAMLClient project from the code sample in this post. The WIF code is pretty straightforward:&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:32e2348c-5920-49e6-8eba-1e0bd80f9e39" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; GetSAMLToken()
{
    WSTrustChannelFactory trustChannelFactory &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; WSTrustChannelFactory(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; WindowsWSTrustBinding(SecurityMode.TransportWithMessageCredential),
            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; EndpointAddress(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Uri(samlUrl)));

    trustChannelFactory.TrustVersion &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; TrustVersion.WSTrust13;

    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;try&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    {
        RequestSecurityToken rst &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;
            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; RequestSecurityToken(WSTrust13Constants.RequestTypes.Issue, WSTrust13Constants.KeyTypes.Bearer);
        rst.AppliesTo &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; EndpointAddress(acsUrl);
        rst.TokenType &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Microsoft.IdentityModel.Tokens.SecurityTokenTypes.Saml2TokenProfile11;

        WSTrustChannel channel &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; (WSTrustChannel)trustChannelFactory.CreateChannel();
        GenericXmlSecurityToken token &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; channel.Issue(rst) &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; GenericXmlSecurityToken;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; tokenString &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; token.TokenXml.OuterXml;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; tokenString;
    }
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;finally&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    {
        trustChannelFactory.Close();
    }
}&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;
The only trick is to ensure you are using the Bearer key type (Yes, you can use WIF to request a Bearer token).

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using the SAML token to get a SWT&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Next, you can use the SAML token to request a SWT from ACS:&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:d69a6633-27db-4115-8b41-f6bb2f78804e" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; SendSAMLTokenToACS(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; samlToken)
{
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;try&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    {
        WebClient client &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; WebClient();
        client.BaseAddress &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; acsUrl;

        NameValueCollection parameters &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; NameValueCollection();
        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; ensure the applies_to URI is created in your ACS
        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; service namespace&lt;/span&gt;&lt;span style="color: #008000;"&gt;
&lt;/span&gt;&lt;span style="color: #000000;"&gt;        parameters.Add(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;applies_to&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;http://localhost/samltest&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);
        parameters.Add(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;wrap_SAML&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, samlToken);

        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;byte&lt;/span&gt;&lt;span style="color: #000000;"&gt;[] responseBytes &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; client.UploadValues(&lt;/span&gt;&lt;span style="color: #800000;"&gt;""&lt;/span&gt;&lt;span style="color: #000000;"&gt;, parameters);
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; response &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Encoding.UTF8.GetString(responseBytes);

        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; response
            .Split(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;)
            .Single(value &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; value.StartsWith(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;wrap_token=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, StringComparison.OrdinalIgnoreCase))
            .Split(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;)[&lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;];
    }
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;catch&lt;/span&gt;&lt;span style="color: #000000;"&gt; (WebException wex)
    {
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; value &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StreamReader(wex.Response.GetResponseStream()).ReadToEnd();
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;throw&lt;/span&gt;&lt;span style="color: #000000;"&gt;;
    }
}&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Viola! That?s all there is.&lt;/p&gt;

&lt;p&gt;Here?s the full code sample ? Let me know any feedback you have?&lt;/p&gt;
&lt;iframe style="padding-bottom: 0px; background-color: #fcfcfc; padding-left: 0px; width: 98px; padding-right: 0px; height: 115px; padding-top: 0px" title="Preview" marginheight="0" src="http://cid-50fa692ec9deac1c.skydrive.live.com/embedicon.aspx/Code%20Samples/ACSSamlDemo.zip" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9922543" width="1" height="1"&gt;</a10:content>
    </item>
    <item>
      <guid isPermaLink="true">http://blogs.msdn.com/justinjsmith/archive/2009/11/14/management-browser-uploaded.aspx</guid>
      <link>http://blogs.msdn.com/justinjsmith/archive/2009/11/14/management-browser-uploaded.aspx</link>
      <author>Justin Smith's Blog|http://blogs.msdn.com/justinjsmith/default.aspx</author>
      <title>Management Browser uploaded</title>
      <description>&lt;p&gt;Since releasing the new version of ACS on Nov 5, we?ve received quite a bit of feedback that we should provide a UI for managing ACS rules/scopes/issuers/token policies. In response, Cyrus put together a little WPF app that does the trick. It?s available on MSDN code gallery here: &lt;a title="http://code.msdn.microsoft.com/acmbrowser" href="http://code.msdn.microsoft.com/acmbrowser"&gt;http://code.msdn.microsoft.com/acmbrowser&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In the coming milestones, we are going to work on refining a UI ? cutting it out of the Nov 5 release was a difficult decision. I?m confident that we will release a supported one in the coming milestones.&lt;/p&gt;  &lt;p&gt;For now, hopefully this one will help. As always, please send us your feedback.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9922512" width="1" height="1"&gt;</description>
      <pubDate>Sat, 14 Nov 2009 19:15:29 Z</pubDate>
      <a10:content type="text">&lt;p&gt;Since releasing the new version of ACS on Nov 5, we?ve received quite a bit of feedback that we should provide a UI for managing ACS rules/scopes/issuers/token policies. In response, Cyrus put together a little WPF app that does the trick. It?s available on MSDN code gallery here: &lt;a title="http://code.msdn.microsoft.com/acmbrowser" href="http://code.msdn.microsoft.com/acmbrowser"&gt;http://code.msdn.microsoft.com/acmbrowser&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In the coming milestones, we are going to work on refining a UI ? cutting it out of the Nov 5 release was a difficult decision. I?m confident that we will release a supported one in the coming milestones.&lt;/p&gt;  &lt;p&gt;For now, hopefully this one will help. As always, please send us your feedback.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9922512" width="1" height="1"&gt;</a10:content>
    </item>
    <item>
      <guid isPermaLink="true">http://blogs.msdn.com/netservicesannounce/archive/2009/11/13/the-net-services-november-2009-ctp-qfe-scheduled-maintenance-complete.aspx</guid>
      <link>http://blogs.msdn.com/netservicesannounce/archive/2009/11/13/the-net-services-november-2009-ctp-qfe-scheduled-maintenance-complete.aspx</link>
      <author>Windows Azure platform AppFabric - Announcements|http://blogs.msdn.com/netservicesannounce/default.aspx</author>
      <title>The .NET Services November 2009 CTP QFE Scheduled Maintenance -- Complete</title>
      <description>&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt; 
&lt;P class=MsoNormal style="MARGIN: 0in 0in 12pt"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #ff6600; mso-fareast-font-family: 'Times New Roman'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-bidi-font-size: 14.0pt"&gt;.NET Services Scheduled Maintenance&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; mso-fareast-font-family: 'Times New Roman'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 8pt; COLOR: black; LINE-HEIGHT: 115%; mso-fareast-font-family: 'Times New Roman'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial; mso-bidi-font-size: 11.0pt"&gt;&lt;FONT size=3&gt;
&lt;HR align=center width="100%" SIZE=1&gt;
&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; COLOR: black; FONT-FAMILY: 'Verdana','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;The .NET Services (Service Bus and Access Control Service) planned maintenance is complete. Some service namespaces may be in the activating state and will automatically get activated shortly. We apologize in advance for any inconvenience.&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9921829" width="1" height="1"&gt;</description>
      <pubDate>Fri, 13 Nov 2009 08:55:00 Z</pubDate>
      <a10:content type="text">&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt; 
&lt;P class=MsoNormal style="MARGIN: 0in 0in 12pt"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #ff6600; mso-fareast-font-family: 'Times New Roman'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-bidi-font-size: 14.0pt"&gt;.NET Services Scheduled Maintenance&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; mso-fareast-font-family: 'Times New Roman'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 8pt; COLOR: black; LINE-HEIGHT: 115%; mso-fareast-font-family: 'Times New Roman'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial; mso-bidi-font-size: 11.0pt"&gt;&lt;FONT size=3&gt;
&lt;HR align=center width="100%" SIZE=1&gt;
&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; COLOR: black; FONT-FAMILY: 'Verdana','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;The .NET Services (Service Bus and Access Control Service) planned maintenance is complete. Some service namespaces may be in the activating state and will automatically get activated shortly. We apologize in advance for any inconvenience.&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9921829" width="1" height="1"&gt;</a10:content>
    </item>
    <item>
      <guid isPermaLink="true">http://blogs.msdn.com/netservicesannounce/archive/2009/11/12/the-net-services-november-2009-ctp-qfe-scheduled-maintenance-starting.aspx</guid>
      <link>http://blogs.msdn.com/netservicesannounce/archive/2009/11/12/the-net-services-november-2009-ctp-qfe-scheduled-maintenance-starting.aspx</link>
      <author>Windows Azure platform AppFabric - Announcements|http://blogs.msdn.com/netservicesannounce/default.aspx</author>
      <title>The .NET Services November 2009 CTP QFE Scheduled Maintenance -- Extended</title>
      <description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 12pt"&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 14pt; COLOR: #ff6600"&gt;.NET Services Scheduled Maintenance&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 14pt; COLOR: #1f497d"&gt; &lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 14pt; COLOR: #e36c0a"&gt;--- Extended&lt;/SPAN&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;The planned maintenance completion is delayed until 1AM PST due to unforeseen deployment issues.&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;/P&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;
&lt;HR align=center width="100%" SIZE=1&gt;
&lt;/DIV&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Verdana','sans-serif'"&gt;The .NET Services (Service Bus and Access Control Service) will&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #1f497d; FONT-FAMILY: 'Verdana','sans-serif'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Verdana','sans-serif'"&gt;be undergoing planned maintenance on &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;November 12th, 2009, starting at 3PM PST, and ending at 12AM PST November 13th. We&lt;SPAN style="COLOR: black"&gt; apologize in advance for any inconvenience.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-SIZE: 14pt; COLOR: #e36c0a; FONT-FAMILY: 'Calibri','sans-serif'"&gt;When:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;STRONG&gt;&lt;SPAN style="COLOR: #e36c0a; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; START:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT face=Calibri&gt; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Verdana','sans-serif'"&gt;November &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;12th,&lt;SPAN style="COLOR: black"&gt; 2009, &lt;/SPAN&gt;3PM PST&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 'Times New Roman','serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;STRONG&gt;&lt;SPAN style="COLOR: #e36c0a; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT face=Calibri&gt; &amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;November 13th, 2009, 12AM PST&lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-SIZE: 14pt; COLOR: #e36c0a; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Impact Alert:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;STRONG&gt;&lt;U&gt;&lt;SPAN style="COLOR: #c00000; FONT-FAMILY: 'Calibri','sans-serif'"&gt;.NET Services and the .NET Services Portal will be unavailable during this period.&lt;/SPAN&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #c00000; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Thank You,&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The .NET Services Team&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9921628" width="1" height="1"&gt;</description>
      <pubDate>Thu, 12 Nov 2009 23:14:00 Z</pubDate>
      <a10:content type="text">&lt;P class=MsoNormal style="MARGIN: 0in 0in 12pt"&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 14pt; COLOR: #ff6600"&gt;.NET Services Scheduled Maintenance&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 14pt; COLOR: #1f497d"&gt; &lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 14pt; COLOR: #e36c0a"&gt;--- Extended&lt;/SPAN&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;The planned maintenance completion is delayed until 1AM PST due to unforeseen deployment issues.&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;/P&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;
&lt;HR align=center width="100%" SIZE=1&gt;
&lt;/DIV&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Verdana','sans-serif'"&gt;The .NET Services (Service Bus and Access Control Service) will&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #1f497d; FONT-FAMILY: 'Verdana','sans-serif'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Verdana','sans-serif'"&gt;be undergoing planned maintenance on &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;November 12th, 2009, starting at 3PM PST, and ending at 12AM PST November 13th. We&lt;SPAN style="COLOR: black"&gt; apologize in advance for any inconvenience.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-SIZE: 14pt; COLOR: #e36c0a; FONT-FAMILY: 'Calibri','sans-serif'"&gt;When:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;STRONG&gt;&lt;SPAN style="COLOR: #e36c0a; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; START:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT face=Calibri&gt; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Verdana','sans-serif'"&gt;November &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;12th,&lt;SPAN style="COLOR: black"&gt; 2009, &lt;/SPAN&gt;3PM PST&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 'Times New Roman','serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;STRONG&gt;&lt;SPAN style="COLOR: #e36c0a; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT face=Calibri&gt; &amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;November 13th, 2009, 12AM PST&lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-SIZE: 14pt; COLOR: #e36c0a; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Impact Alert:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;STRONG&gt;&lt;U&gt;&lt;SPAN style="COLOR: #c00000; FONT-FAMILY: 'Calibri','sans-serif'"&gt;.NET Services and the .NET Services Portal will be unavailable during this period.&lt;/SPAN&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #c00000; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Thank You,&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The .NET Services Team&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9921628" width="1" height="1"&gt;</a10:content>
    </item>
    <item>
      <guid isPermaLink="true">http://blogs.msdn.com/netservices/archive/2009/11/12/the-net-services-november-2009-ctp-qfe-breaking-changes-announcement-and-scheduled-maintenance.aspx</guid>
      <link>http://blogs.msdn.com/netservices/archive/2009/11/12/the-net-services-november-2009-ctp-qfe-breaking-changes-announcement-and-scheduled-maintenance.aspx</link>
      <author>Windows Azure platform AppFabric Team Blog|http://blogs.msdn.com/netservices/default.aspx</author>
      <title>The .NET Services November 2009 CTP QFE Breaking Changes Announcement and Scheduled Maintenance</title>
      <description>&lt;P&gt;Please see this &lt;A href="http://blogs.msdn.com/netservicesannounce/archive/2009/11/11/the-net-services-november-2009-ctp-qfe-breaking-changes-announcement-and-scheduled-maintenance.aspx" mce_href="http://blogs.msdn.com/netservicesannounce/archive/2009/11/11/the-net-services-november-2009-ctp-qfe-breaking-changes-announcement-and-scheduled-maintenance.aspx"&gt;blog post&lt;/A&gt; for detail.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The .NET Services Team&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9921468" width="1" height="1"&gt;</description>
      <pubDate>Thu, 12 Nov 2009 17:30:00 Z</pubDate>
      <a10:content type="text">&lt;P&gt;Please see this &lt;A href="http://blogs.msdn.com/netservicesannounce/archive/2009/11/11/the-net-services-november-2009-ctp-qfe-breaking-changes-announcement-and-scheduled-maintenance.aspx" mce_href="http://blogs.msdn.com/netservicesannounce/archive/2009/11/11/the-net-services-november-2009-ctp-qfe-breaking-changes-announcement-and-scheduled-maintenance.aspx"&gt;blog post&lt;/A&gt; for detail.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The .NET Services Team&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9921468" width="1" height="1"&gt;</a10:content>
    </item>
    <item>
      <guid isPermaLink="true">http://blogs.msdn.com/netservicesannounce/archive/2009/11/11/the-net-services-november-2009-ctp-qfe-breaking-changes-announcement-and-scheduled-maintenance.aspx</guid>
      <link>http://blogs.msdn.com/netservicesannounce/archive/2009/11/11/the-net-services-november-2009-ctp-qfe-breaking-changes-announcement-and-scheduled-maintenance.aspx</link>
      <author>Windows Azure platform AppFabric - Announcements|http://blogs.msdn.com/netservicesannounce/default.aspx</author>
      <title>The .NET Services November 2009 CTP QFE Breaking Changes Announcement and Scheduled Maintenance</title>
      <description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The .NET Services Team will release a QFE on 11/12/2009 (Thursday).&amp;nbsp; Users will have NO access to .NET Services Portal and .NET Services during the scheduled maintenance down time.&amp;nbsp; &lt;B&gt;Please note that any Access Control Service data (i.e. rules, scopes, issuers, token policies) that customers have created will have to be manually restored by customers post this QFE release.&amp;nbsp; &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;When:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; START: November 12th, 2009, 3pm PST&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END:&amp;nbsp; November 13th, 2009, Midnight PST&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Impact Alert:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Service Bus, Access Control Service and the .NET Services Portal will be unavailable during this period.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Please read the following detail to prepare your applications for this QFE release:&lt;/FONT&gt;&lt;/P&gt;
&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=5&gt;&lt;FONT color=#365f91&gt;&lt;FONT face=Cambria&gt;.NET Services SDK Samples&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;TABLE class=MsoNormalTable style="BORDER-COLLAPSE: collapse; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 border=0 class="MsoNormalTable"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 306.9pt; PADDING-TOP: 0in; BORDER-BOTTOM: #f0f0f0; BACKGROUND-COLOR: transparent" vAlign=top width=409 colSpan=2&gt;
&lt;H2 style="MARGIN: 10pt 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Service Bus Message Buffer HTTP API Sample&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 1"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e5e5; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #f0f0f0" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Description&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e5e5; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: #f0f0f0" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;A HTTP Message Buffer sample has been&amp;nbsp; added to the November 2009 CTP QFE SDK &lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 2"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Pre-Release Behavior&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;SDK contains Message Buffer Client sample only&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 3"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Post-Release Behavior&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;SDK contains both Message Buffer Client and HTTP Message Buffer samples&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 4; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Recommended Post-Release Action&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;In order to get access to the new HTTP Message Buffer samples, users will need to download the new November 2009 CTP QFE SDK &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=5&gt;&lt;FONT color=#365f91&gt;&lt;FONT face=Cambria&gt;Access Control Service&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;TABLE class=MsoNormalTable style="BORDER-COLLAPSE: collapse; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 border=0 class="MsoNormalTable"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 306.9pt; PADDING-TOP: 0in; BORDER-BOTTOM: #f0f0f0; BACKGROUND-COLOR: transparent" vAlign=top width=409 colSpan=2&gt;
&lt;H2 style="MARGIN: 10pt 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;A New Service Namespace Management Key will be generated&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 1"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e5e5; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #f0f0f0" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Description&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e5e5; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: #f0f0f0" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;A New Service Namespace Management Key will be generated.&amp;nbsp; Please note that it might take up to 24 hours for some management keys to be generated after the release&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 2"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Pre-Release Behavior&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;n/a&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 3"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Post-Release Behavior&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;n/a&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 4"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Recommended Post-Release Action&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Configuration files, user code or scripts referencing the management key should be updated with the new management key&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 5"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 306.9pt; PADDING-TOP: 0in; BORDER-BOTTOM: #f0f0f0; BACKGROUND-COLOR: transparent" vAlign=top width=409 colSpan=2&gt;
&lt;H2 style="MARGIN: 10pt 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Access Control Service data will not be migrated&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 6"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e5e5; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #f0f0f0" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Description&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e5e5; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: #f0f0f0" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;All Access Control Service data such as rules, scopes, token policies, issuers will not be migrated to the November 2009 CTP QFE release&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 7"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Pre-Release Behavior&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;n/a&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 8"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Post-Release Behavior&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;n/a&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 9"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Recommended Pre-Release Action&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Export Access Control Service data&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Customers who have configured ACS data (i.e. rules, scopes, token policies and issuer) may wish to export their data to enable post release restoration.&amp;nbsp; Currently the acm.exe tool does not support bulk operations such as backup/restore. Instead, it must be performed manually. To assist in the process there is a short script you can run which will create a collection of text files that capture the Token Policies, Scopes, Issuers, and Rules in files. While the Token Policies, Scopes, and Issuers are retrieved into their own respective files, the Rules must be retrieved in reference to the Scope.&amp;nbsp; As such, the script loops through all the scope IDs&amp;nbsp; in scopes.txt and requests all the rules for that particular scope and places them in the rules_[scope id].txt file.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;To run this script, please ensure that the Service Namespace (service) and the Management key (mgmtkey) properties are set in acm.exe.config. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Export.BAT&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #e36c0a; FONT-FAMILY: 'Courier New'"&gt;acm getall scope &amp;gt; scopes.txt&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #e36c0a; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #e36c0a; FONT-FAMILY: 'Courier New'"&gt;FOR /F "tokens=2 delims=: " %%G IN ('findstr /B "id" scopes.txt') DO (acm getall rule -scopeid:%%G &amp;gt;&amp;gt; rules_%%G.txt)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #e36c0a; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #e36c0a; FONT-FAMILY: 'Courier New'"&gt;acm getall tokenpolicy &amp;gt; tokenpolicy.txt&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #e36c0a; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #e36c0a; FONT-FAMILY: 'Courier New'"&gt;acm getall issuer &amp;gt; issuer.txt&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 10; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Recommended Post-Release Action&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Restore Access Control Service Data&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Please note that a new Service Namespace Management Key will be generated as part of the QFE release.&amp;nbsp; After the QFE release, you will have to retrieve the new key from the Portal and update acm.exe.config.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;To perform a restoration, you will have to run all the necessary commands using the acm.exe tool.&amp;nbsp;&amp;nbsp; To learn more about how to use the acm.exe tool, please see the ACM.exe sample in the SDK. Due to dependencies, the restoration must be done in a particular order. First the Token Policies, then the Scopes which reference the Token Policy IDs, then the Issuers, and then the Rules which reference both the Scope IDs and the Issuer IDs.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The .NET Services Team&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9921201" width="1" height="1"&gt;</description>
      <pubDate>Thu, 12 Nov 2009 05:59:00 Z</pubDate>
      <a10:content type="text">&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The .NET Services Team will release a QFE on 11/12/2009 (Thursday).&amp;nbsp; Users will have NO access to .NET Services Portal and .NET Services during the scheduled maintenance down time.&amp;nbsp; &lt;B&gt;Please note that any Access Control Service data (i.e. rules, scopes, issuers, token policies) that customers have created will have to be manually restored by customers post this QFE release.&amp;nbsp; &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;When:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; START: November 12th, 2009, 3pm PST&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END:&amp;nbsp; November 13th, 2009, Midnight PST&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Impact Alert:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Service Bus, Access Control Service and the .NET Services Portal will be unavailable during this period.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Please read the following detail to prepare your applications for this QFE release:&lt;/FONT&gt;&lt;/P&gt;
&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=5&gt;&lt;FONT color=#365f91&gt;&lt;FONT face=Cambria&gt;.NET Services SDK Samples&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;TABLE class=MsoNormalTable style="BORDER-COLLAPSE: collapse; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 border=0 class="MsoNormalTable"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 306.9pt; PADDING-TOP: 0in; BORDER-BOTTOM: #f0f0f0; BACKGROUND-COLOR: transparent" vAlign=top width=409 colSpan=2&gt;
&lt;H2 style="MARGIN: 10pt 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Service Bus Message Buffer HTTP API Sample&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 1"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e5e5; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #f0f0f0" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Description&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e5e5; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: #f0f0f0" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;A HTTP Message Buffer sample has been&amp;nbsp; added to the November 2009 CTP QFE SDK &lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 2"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Pre-Release Behavior&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;SDK contains Message Buffer Client sample only&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 3"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Post-Release Behavior&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;SDK contains both Message Buffer Client and HTTP Message Buffer samples&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 4; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Recommended Post-Release Action&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;In order to get access to the new HTTP Message Buffer samples, users will need to download the new November 2009 CTP QFE SDK &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=5&gt;&lt;FONT color=#365f91&gt;&lt;FONT face=Cambria&gt;Access Control Service&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;TABLE class=MsoNormalTable style="BORDER-COLLAPSE: collapse; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 border=0 class="MsoNormalTable"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 306.9pt; PADDING-TOP: 0in; BORDER-BOTTOM: #f0f0f0; BACKGROUND-COLOR: transparent" vAlign=top width=409 colSpan=2&gt;
&lt;H2 style="MARGIN: 10pt 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;A New Service Namespace Management Key will be generated&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 1"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e5e5; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #f0f0f0" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Description&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e5e5; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: #f0f0f0" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;A New Service Namespace Management Key will be generated.&amp;nbsp; Please note that it might take up to 24 hours for some management keys to be generated after the release&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 2"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Pre-Release Behavior&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;n/a&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 3"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Post-Release Behavior&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;n/a&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 4"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Recommended Post-Release Action&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Configuration files, user code or scripts referencing the management key should be updated with the new management key&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 5"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 306.9pt; PADDING-TOP: 0in; BORDER-BOTTOM: #f0f0f0; BACKGROUND-COLOR: transparent" vAlign=top width=409 colSpan=2&gt;
&lt;H2 style="MARGIN: 10pt 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Access Control Service data will not be migrated&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 6"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e5e5; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #f0f0f0" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Description&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e5e5; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: #f0f0f0" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;All Access Control Service data such as rules, scopes, token policies, issuers will not be migrated to the November 2009 CTP QFE release&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 7"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Pre-Release Behavior&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;n/a&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 8"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Post-Release Behavior&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;n/a&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 9"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Recommended Pre-Release Action&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Export Access Control Service data&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Customers who have configured ACS data (i.e. rules, scopes, token policies and issuer) may wish to export their data to enable post release restoration.&amp;nbsp; Currently the acm.exe tool does not support bulk operations such as backup/restore. Instead, it must be performed manually. To assist in the process there is a short script you can run which will create a collection of text files that capture the Token Policies, Scopes, Issuers, and Rules in files. While the Token Policies, Scopes, and Issuers are retrieved into their own respective files, the Rules must be retrieved in reference to the Scope.&amp;nbsp; As such, the script loops through all the scope IDs&amp;nbsp; in scopes.txt and requests all the rules for that particular scope and places them in the rules_[scope id].txt file.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;To run this script, please ensure that the Service Namespace (service) and the Management key (mgmtkey) properties are set in acm.exe.config. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Export.BAT&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #e36c0a; FONT-FAMILY: 'Courier New'"&gt;acm getall scope &amp;gt; scopes.txt&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #e36c0a; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #e36c0a; FONT-FAMILY: 'Courier New'"&gt;FOR /F "tokens=2 delims=: " %%G IN ('findstr /B "id" scopes.txt') DO (acm getall rule -scopeid:%%G &amp;gt;&amp;gt; rules_%%G.txt)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #e36c0a; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #e36c0a; FONT-FAMILY: 'Courier New'"&gt;acm getall tokenpolicy &amp;gt; tokenpolicy.txt&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #e36c0a; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #e36c0a; FONT-FAMILY: 'Courier New'"&gt;acm getall issuer &amp;gt; issuer.txt&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 10; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 95.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=127&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Recommended Post-Release Action&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 211.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=282&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Restore Access Control Service Data&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Please note that a new Service Namespace Management Key will be generated as part of the QFE release.&amp;nbsp; After the QFE release, you will have to retrieve the new key from the Portal and update acm.exe.config.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: #e36c0a"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;To perform a restoration, you will have to run all the necessary commands using the acm.exe tool.&amp;nbsp;&amp;nbsp; To learn more about how to use the acm.exe tool, please see the ACM.exe sample in the SDK. Due to dependencies, the restoration must be done in a particular order. First the Token Policies, then the Scopes which reference the Token Policy IDs, then the Issuers, and then the Rules which reference both the Scope IDs and the Issuer IDs.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The .NET Services Team&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9921201" width="1" height="1"&gt;</a10:content>
    </item>
  </channel>
</rss>