<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Kurt Claeys</title>
        <link>http://geekswithblogs.net/claeyskurt/Default.aspx</link>
        <description>DEVITECT.NET</description>
        <language>nl-BE</language>
        <copyright>Kurt Claeys</copyright>
        <managingEditor>kurt@casey.be</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>Kurt Claeys</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/claeyskurt/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>TechEd Azure Demo published</title>
            <link>http://geekswithblogs.net/claeyskurt/archive/2009/11/13/136261.aspx</link>
            <description>&lt;p&gt;I published my TechEd demo for download at &lt;font face=""&gt;www.devitect.net/techeddemo/techeddemo.zip &lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136261"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136261" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/136261.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2009/11/13/136261.aspx</guid>
            <pubDate>Fri, 13 Nov 2009 12:53:21 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/136261.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2009/11/13/136261.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/136261.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/136261.aspx</trackback:ping>
        </item>
        <item>
            <title>Windows Azure Platform @ Community Day 09</title>
            <category>Azure</category>
            <category>NTECH</category>
            <link>http://geekswithblogs.net/claeyskurt/archive/2009/07/23/133671.aspx</link>
            <description>&lt;p&gt;My presentation on the Windows Azure Platform is online on MSDN Chopsticks. See &lt;font face="Arial"&gt;&lt;a href="http://www.microsoft.com/belux/MSDN/nl/chopsticks/default.aspx?id=1366"&gt;http://www.microsoft.com/belux/MSDN/nl/chopsticks/default.aspx?id=1366&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
In this presentation you get an overview of the Windows Azure Platform, the ideas behind it and the business value of using this platform. The vision of Microsoft on cloud services and the implementation towards developers will become clear. We will discuss the architecture of Azure and the paradigm shift from building traditional on-premises applications to global enterprise cloud based applications. We dive into the solution architecture and the separation of the user interface (as webrole) and the services (as workerrole). &lt;br /&gt;
&lt;br /&gt;
&lt;/font&gt;Or you can watch this here : &lt;/p&gt;
&lt;iframe marginwidth="0" marginheight="0" src="http://www.microsoft.com/belux/MSDN/nl/chopsticks/player.aspx?id=1366" frameborder="0" width="493" scrolling="no" height="385"&gt;&lt;/iframe&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133671"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133671" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/133671.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2009/07/23/133671.aspx</guid>
            <pubDate>Thu, 23 Jul 2009 17:49:42 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/133671.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2009/07/23/133671.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/133671.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/133671.aspx</trackback:ping>
        </item>
        <item>
            <title>new CloudApp() developers challenge voting is open.</title>
            <link>http://geekswithblogs.net/claeyskurt/archive/2009/07/10/133418.aspx</link>
            <description>&lt;p&gt;NewCloudApp is a challenge (some kind of developers contest) for Azure based applications. See &lt;a href="http://www.newcloudapp.com"&gt;www.newcloudapp.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;My application (for Ordina.be) called SHPH as submission for this is running on &lt;a href="http://shph2.cloudapp.net/" target="_blank"&gt;shph2.cloudapp.net&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;SHPH is an application in the cloud running on the Microsoft Azure Services Platform. Using this application allows sending pictures taken during holidays from a PC in your hotel to PC’s at home via the cloud. The idea is to share your holiday experience directly with family and friends. People at home subscribe to the tag you use when uploading pictures across the globe. Once uploaded, the cloud pushes the picture immediately to the subscriber’s home pc.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://shph2.cloudapp.net/img/shph.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;Feel free to have a look at it and provide me some feedback (as reply to this post). I would be happy if you would vote for this application on &lt;a title="http://www.newcloudapp.com/vote.aspx" href="http://www.newcloudapp.com/vote.aspx"&gt;http://www.newcloudapp.com/vote.aspx&lt;/a&gt;. You can vote every day from now until june 20.&lt;/p&gt;  &lt;p&gt;We will be discussing this code on one of the meetings of the Belgian Azure User Group (&lt;a href="http://www.azug.be"&gt;www.azug.be&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133418"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133418" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/133418.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2009/07/10/133418.aspx</guid>
            <pubDate>Fri, 10 Jul 2009 22:54:19 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/133418.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2009/07/10/133418.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/133418.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/133418.aspx</trackback:ping>
        </item>
        <item>
            <title>AZUG.BE, the belgian Azure User Group launched.</title>
            <link>http://geekswithblogs.net/claeyskurt/archive/2009/06/20/132960.aspx</link>
            <description>&lt;p&gt;I'm starting a new usergroup with focus on the Azure Services Platform and .NET Services. &lt;/p&gt;
&lt;p align="center"&gt;&lt;a target="_blank" href="http://www.azug.be/"&gt;&lt;img border="0" alt="" src="http://www.casey.be/azug/img/azuglogo.gif" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;a target="_blank" href="http://www.azug.be"&gt;AZUG.BE&lt;/a&gt; is a Belgian user group with focus on development and architecture of the Microsoft Azure Services Platform. Azure is a cloud hosted development platform for internet oriented applications aimed at high scalability and based on .NET technology. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Our goal is to share knowledge and experiences with the .NET community in development and architecture in the Azure Services Platform and the .NET Services technology. As new programming skills and a new architectural approach are needed I’m inviting you to become member of this user group to prepare you for building this new style of applications. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;We’ll have regular public meetings (free of charge) providing demos, training, presentations and discussions on the technology part of Azure. First public meeting is planned in september 09. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Interested in participating as boardmember ? Shoot a mail at board@azug.be.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Interested in the agenda of upcoming events, visit &lt;a target="_blank" href="http://www.azug.be"&gt;www.azug.be&lt;/a&gt; regularly or register for the newsletter at newsletter@azug.be with the word subscribe as subject. Hope to see you.&lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132960"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132960" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/132960.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2009/06/20/132960.aspx</guid>
            <pubDate>Sat, 20 Jun 2009 19:36:30 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/132960.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2009/06/20/132960.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/132960.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/132960.aspx</trackback:ping>
        </item>
        <item>
            <title>new CloudApp() - The Azure™ Services Platform Developer Challenge</title>
            <link>http://geekswithblogs.net/claeyskurt/archive/2009/06/12/132765.aspx</link>
            <description>&lt;p&gt;A few days ago I started developing an Azure based cloud application. Not just some playing but a serious effort. For several reasons. Of course I love digging into new technologies just for the geeky part of it. But besides that there's another good reason : Microsoft is organizing a developer contest called "new CloudApp() - The Azure™ Services Platform Developer Challenge". (see : &lt;font face="Arial"&gt;&lt;a href="http://www.newcloudapp.com"&gt;http://www.newcloudapp.com&lt;/a&gt;&lt;/font&gt;). I have a great idea for a social cloud application and am implementing this with Azure and .NET Services. A lot of work goes into researching as not many good resources are available for the moment. I hope to finish on time, deadline is July 9 (for the international submission).&lt;/p&gt;
&lt;p&gt;Right now I cannot tell you details of the application but ... it's about distributing your holiday pictures to home when on vacation. I'll demonstrate this application and show how it's done at my presentation at &lt;a target="_blank" href="http://www.communityday.be/CD/Agenda/TheAzureServicesPlatform/tabid/147/Default.aspx"&gt;community day&lt;/a&gt; (25 jun, Mechelen). So if you're interested in a preview of this Azure application and want to learn concepts and coding behind it you're welcome.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132765"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132765" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/132765.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2009/06/12/132765.aspx</guid>
            <pubDate>Fri, 12 Jun 2009 10:55:05 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/132765.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2009/06/12/132765.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/132765.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/132765.aspx</trackback:ping>
        </item>
        <item>
            <title>Belgian Community Day 09 site is live, registrations open.</title>
            <link>http://geekswithblogs.net/claeyskurt/archive/2009/05/09/131931.aspx</link>
            <description>&lt;p&gt;The new site for the Belgian Community Day 09 is open.&lt;/p&gt;  &lt;p&gt;“&lt;em&gt;Eleven Microsoft User Groups combine their efforts to organize this unique networking and knowledge sharing event. A unique opportunity to learn about Microsoft’s latest developments and technologies like Exchange 2010, Silverlight 3, Visual Studio 2010, SQL Server 2008, Windows 2008R2, Powershell V2, Forefront Identity Manager 2010, XNA 3.1. and OCS R2. Microsoft Community Day will take place on &lt;strong&gt;Thursday 25th June &lt;/strong&gt;2009 in &lt;strong&gt;Utopolis, Mechelen&lt;/strong&gt;, where we will bring together 300 IT Pro’s and developers. The Microsoft Community Day 2009 is supported by BESUG, BIWUG, IT-Talks, MVUG, Pro-Exchange, SCUG, SQLUG, VBIB, Visug, WinSec, XNA-BUG“ Register now for &lt;strong&gt;free &lt;/strong&gt;for this &lt;strong&gt;all day &lt;/strong&gt;event!&lt;/em&gt;“&lt;/p&gt;  &lt;p&gt; &lt;a title="Community Day 09" href="http://www.communityday.be" target="_blank"&gt;&lt;img title="CD09banner1_thumb" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="83" alt="CD09banner1_thumb" src="http://geekswithblogs.net/images/geekswithblogs_net/claeyskurt/WindowsLiveWriter/BelgianCommunityDay09siteisliveregistra_56D3/CD09banner1_thumb_3.jpg" width="414" border="0" /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;strong&gt;Thursday 25th June &lt;/strong&gt;2009 in &lt;strong&gt;Utopolis, Mechelen&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131931"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131931" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/131931.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2009/05/09/131931.aspx</guid>
            <pubDate>Sat, 09 May 2009 21:10:08 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/131931.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2009/05/09/131931.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/131931.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/131931.aspx</trackback:ping>
        </item>
        <item>
            <title>SyntraWest Informatics IT CLUB for Developers/Architects Seminars</title>
            <link>http://geekswithblogs.net/claeyskurt/archive/2009/05/05/131827.aspx</link>
            <description>&lt;p&gt;&lt;em&gt;(in dutch as the target audience is dutch speaking!)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Ik geef twee seminars over mijn favoriete .NET technologien (WCF en WF) voor SyntraWest&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="2" width="600" border="0"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="600"&gt;
            &lt;h4&gt;SyntraWest IT CLUB for Developers/Architects Seminars&lt;/h4&gt;
            &lt;strong&gt;&lt;em&gt;&lt;u&gt;
            &lt;p align="justify"&gt;&lt;br /&gt;
            &lt;/p&gt;
            &lt;/u&gt;&lt;u&gt;26 mei 09, Windows Communication Foundation Deep Dive&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;
            &lt;p align="justify"&gt;&lt;strong&gt;10 Scenarios om een WCF Service aan te spreken.&lt;/strong&gt; WCF is een zeer breed toepasbaar platform voor distributed applications en services te implementeren. In deze demo georienteerde sessie worden 10 uiteenlopende scenarios besproken waar bij een clientapplicatie met telkens een andere onderliggende technologie een WCF service zal aanspreken. Het toegankelijk maken van dezelfde service vanuit uiteenlopende clientplatformen is mogelijk door het afzonderen van de implementatie-logica ten opzichte van de technische infrastructuur door middel van bindings. Een aantal verschillende bindings en hun toepassingen komen aan bod. De 10 verschillende clients zijn : een klassieke .NET 2.0 ASMX client, een secure .NET 2.0 client, Silverlight als client, Office 2007 als client, PowerShell als client, Workflows Services als client, een AJAX enabled webapplicatie als client, een gedisconnecteerde MSMQ client, een mobile device, een eenvoudige POX/REST client. Dit is een anderhalf uur durende reis doorheen de vele toepassingsgebieden van het .NET 3.5 platform.&lt;/p&gt;
            &lt;p align="justify"&gt;&lt;strong&gt;Extra, Future Preview&lt;/strong&gt; : Een overzicht van het Windows Azure Platform en het toepassen van .NET Services. Deze toekomstige technologien bieden de mogelijkheid om applicaties te hosten in de datacentra van Microsoft, wereldwijd services te integreren en zo een heel hoge schaalbaarheid te bieden. &lt;br /&gt;
            &lt;/p&gt;
            &lt;p align="justify"&gt;&lt;strong&gt;&lt;u&gt;16 juni 09, Workflow Foundation Deep Dive &lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
            &lt;p align="justify"&gt;&lt;strong&gt;Business Processen bouwen met Workflow Services. &lt;/strong&gt;In .NET 3.5 is er een diepgaande integratie tussen Windows Communication Foundation en Workflow Foundation. Deze integratie (=Workflow Services) maakt het mogelijk om het aanroepen van operaties in WCF services door een declaratief vastgelegde workflow te organizeren en zo een business process te implementeren. Een workflow kan vanuit een WCF client opgestart worden waarna deze workflow zelf met andere WCF applicaties gaat samenwerken om zo het process stap voor stap uit te voeren. Deze processen kunnen langlopend zijn doordat de status ervan bewaard kan worden in een database. Door middel van een reeks nieuwe WCF bindings kunnen de randapplicaties terug communiceren met de instantie van het eerder opgestarte process. In deze sessie komen de concepten van Workflow Services uitvoerig aan bod en zal een praktische demo overtuigen van de kracht en noodzaak van het gebruik ervan. De demo toont een process die door een webapplicatie opgestart zal worden waarna het wacht op een aanroep vanuit een windows applicatie vooralleer een externe service aan te spreken waardoor het process eindigt.&lt;/p&gt;
            &lt;p align="justify"&gt;&lt;strong&gt;Extra, Future Preview&lt;/strong&gt; : Een overzicht van de nieuwe elementen van Worfklow Foundation 4.0 en het ‘Dublin’ hosting platform. Met WF 4.0 en ‘Dublin’ zal het bouwen van workflow gebaseerde processen nog heel wat flexibeler en krachtiger worden.&lt;br /&gt;
            &lt;/p&gt;
            &lt;p align="justify"&gt;&lt;strong&gt;Waar/Wanneer ? &lt;/strong&gt;&lt;font face="Arial"&gt;26 mei 09 en 16 juni 09 van 18:00u tot 21:30 te &lt;strong&gt;Syntra West Kortrijk&lt;/strong&gt;, Doorniksesteenweg 220, 8500 Kortrijk.&lt;br /&gt;
            &lt;/font&gt;&lt;br /&gt;
            &lt;br /&gt;
            &lt;strong&gt;Spreker : Kurt CLAEYS (MCT, MVP Connected System Developer, MCTS WCF/WF .NET 3.5). &lt;/strong&gt;Beide sessies worden gegeven door Kurt CLAEYS, een .NET Solution Architect en competence leader voor &lt;a target="_blank" href="http://www.ordina.be"&gt;ORDINA&lt;/a&gt;. Kurt CLAEYS is een ervaren spreker en auteur over WCF/WF technologien en door Microsoft als Most Valuable Professional Connected System Developer gewaardeerd. Blog : &lt;a href="http://www.devitect.net"&gt;www.devitect.net&lt;/a&gt;.&lt;/p&gt;
            &lt;p align="justify"&gt;Inschrijven : Syntra West Informatics - dhr. Chris Cardinael - 050 40 30 65 &lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131827"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131827" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/131827.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2009/05/05/131827.aspx</guid>
            <pubDate>Tue, 05 May 2009 12:17:40 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/131827.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2009/05/05/131827.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/131827.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/131827.aspx</trackback:ping>
        </item>
        <item>
            <title>The need for worldwide scalability of applications influences solution architectures in Azure hosted applications.</title>
            <link>http://geekswithblogs.net/claeyskurt/archive/2009/04/30/131620.aspx</link>
            <description>&lt;table cellspacing="0" cellpadding="2" width="750" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="748"&gt;         &lt;p&gt;&lt;em&gt;The second edition of the Microsoft Belux (Belgium and Luxembourg) Architecture newsletter is out and refers to this article on Azure architecture. See : &lt;/em&gt;&lt;a title="http://www.microsoft.com/belux/architect/issue_2/azure_hosted_applications.aspx" href="http://www.microsoft.com/belux/architect/issue_2/azure_hosted_applications.aspx"&gt;&lt;em&gt;http://www.microsoft.com/belux/architect/issue_2/azure_hosted_applications.aspx&lt;/em&gt;&lt;/a&gt;&lt;em&gt;. Interested in Microsoft Architecture ? See the blog &lt;/em&gt;&lt;a href="http://blogs.msdn.com/architectsrule/" target="_blank"&gt;&lt;strong&gt;&lt;em&gt;Architects Rule&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;em&gt; by Philippe Destoop, Enterprise Architect for Microsoft Belgium and Luxembourg.&lt;/em&gt;&lt;/p&gt;          &lt;p align="justify"&gt;The Azure Services Platform is an infrastructure managed by Microsoft in their datacenters that enterprises and ISV’s can use to build and run new applications. It also offers a set of services running in the cloud that enterprises and ISV’s can use to extend and enhance their applications running in the cloud or their existing applications running on premise. The schema below (coming from David Chappell) illustrates this.&lt;/p&gt;          &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/claeyskurt/WindowsLiveWriter/Theneedforworldwidescalabilityofapplica_BF0E/Image%201%20_%20TheAzureServicesPlatform_2.jpg"&gt;&lt;img title="Image 1 _ TheAzureServicesPlatform" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="480" alt="Image 1 _ TheAzureServicesPlatform" src="http://geekswithblogs.net/images/geekswithblogs_net/claeyskurt/WindowsLiveWriter/Theneedforworldwidescalabilityofapplica_BF0E/Image%201%20_%20TheAzureServicesPlatform_thumb.jpg" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;          &lt;p&gt;The way we create these applications and the solution architecture underneath them is different compared to classic ‘on-premises’ applications. Azure brings a broad set of possibilities but also new challenges. Three of the main new concepts are: a new deployment model for cloud based hosting, a new layer of abstraction towards persisting data and a new infrastructure to authenticate users. In this article we will look into those three main areas.            &lt;br /&gt;            &lt;br /&gt;These new architectural models and API’s create a new environment for solution architects and learning curve for .NET developers. The main benefit behind these changes is the need for a worldwide reach and a flexible scalability. From the start of the development of the Azure Platform scalability was the main focus. In Azure there’s a great support to easily scale-out your applications to the internet. This results in a new solution architecture for applications.             &lt;br /&gt;            &lt;br /&gt;The picture below illustrates an overview of the Azure Services platform:&lt;/p&gt;          &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/claeyskurt/WindowsLiveWriter/Theneedforworldwidescalabilityofapplica_BF0E/Image%202%20_%20TheAzureServicesPlatform_2.jpg"&gt;&lt;img title="Image 2 _ TheAzureServicesPlatform" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="332" alt="Image 2 _ TheAzureServicesPlatform" src="http://geekswithblogs.net/images/geekswithblogs_net/claeyskurt/WindowsLiveWriter/Theneedforworldwidescalabilityofapplica_BF0E/Image%202%20_%20TheAzureServicesPlatform_thumb.jpg" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;          &lt;p&gt;&lt;strong&gt;Deployment Model              &lt;br /&gt;&lt;/strong&gt;            &lt;br /&gt;Applications on Azure are running in virtual machines running Windows 2008 Server hosted in Microsoft datacenters behind a load balancer and are organized into 2 distinct layers called roles. A role is either a web role in which the application is an ASP.NET website which forms the user interface or a worker role which is an infinitive loop that processes messages coming from the web role through a queuing mechanism. The web role is accessible via the public internet but the worker role is not, the worker role only has outgoing access. (See figure 1)&lt;/p&gt;          &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/claeyskurt/WindowsLiveWriter/Theneedforworldwidescalabilityofapplica_BF0E/Image%203%20_%20Figure%201%20Web%20and%20Worker%20Role_2.jpg"&gt;&lt;img title="Image 3 _ Figure 1 Web and Worker Role" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="373" alt="Image 3 _ Figure 1 Web and Worker Role" src="http://geekswithblogs.net/images/geekswithblogs_net/claeyskurt/WindowsLiveWriter/Theneedforworldwidescalabilityofapplica_BF0E/Image%203%20_%20Figure%201%20Web%20and%20Worker%20Role_thumb.jpg" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;          &lt;p&gt;Although the web role is typically stateless it can share data with the worker role through a storage service. The trigger to process the data coming from the user is executed by sending a message over the queue from web role to worker role. This creates an asynchronous pattern of data processing. The web role can immediately respond to the user interface while the worker role is still processing the data in its loop.            &lt;br /&gt;            &lt;br /&gt;Each role is running on one dedicated virtual machine which means even the smallest application is distributed over 2 virtual machines. This concept is the enabler of the desired scalability which can be easy configured. Azure supports a new configuration file where the number of instances for each role is defined. As a role is coupled to a virtual machine this configuration is the key for scalability. By increasing the number of instances new virtual machines are started automatically which can help the other instances in taking a part of processing the requests. These extra virtual machines are exactly the same as the other virtual machines the application is running on. This is clearly the scale-out way of working. So an administrator can just add more processing power when more performance is needed due to an increasing numbers of users. It will of course be equally easy to decrease the number of instances when less load needs to be handled. This can be done for the UI (web role) and the Processing (worker role) separately.             &lt;br /&gt;            &lt;br /&gt;Compared to classic hosting on dedicated physical machines this is an enormous cost saver as the cost of increasing the number of instances is calculated based on the consumed processor time. Although Microsoft has not officially announced a pricing model this would be the idea.             &lt;br /&gt;            &lt;br /&gt;Working with this 2 layered approach is different compared to the way we create a multilayered architecture for on premises solutions. This could influence the implementations of our beloved MVP or MVC patterns.             &lt;br /&gt;&lt;strong&gt;             &lt;br /&gt;Abstraction of datastorage and dynamic structuring of data&lt;/strong&gt;             &lt;br /&gt;            &lt;br /&gt;Azure brings two technologies to support storage and retrieval of data. &lt;/p&gt;          &lt;ul&gt;           &lt;li&gt;             &lt;div align="justify"&gt;SQL Services as one of the components of the Azure Services Platform. &lt;/div&gt;           &lt;/li&gt;            &lt;li&gt;             &lt;div align="justify"&gt;Azure Storage as part of the Windows Azure offering &lt;/div&gt;           &lt;/li&gt;         &lt;/ul&gt;          &lt;p&gt;SQL Services is a SQL environment running in the cloud which is accessible from either the Azure applications or on premises applications. SQL Services is typically used for storage in the cloud and as a hub to synchronize data between occasionally disconnected devices. SQL Services supports the known relational database concepts and the client libraries like ADO.NET and ODBC.            &lt;br /&gt;            &lt;br /&gt;Azure Storage considers data as direct accessible pieces of information from within an application build out of the cloud hosted web and worker roles or any web enabled client. HTTP and REST are the technologies to read, insert, update and delete data.             &lt;br /&gt;            &lt;br /&gt;Although the data in Azure Storage is stored in a SQL database there’s no explicit persisting layer visible in the architecture of an Azure application. The data can be accessed without using the ADO.NET library and executing SQL statements through it. In an application there will be a thin layer of entity metadata that maps changes in an objectmodel to HTTP/REST calls to the Storage Services. The information can be tables or blobs. Blobs can store large amounts of data and can be given attributes to have them identified. This means to store an image or document we don’t have to create a table in a relational database to store the data, we don’t need to write the bytes of the datastream to disk explicitly by code, we don’t need to us ADO.NET to read this data. The data is always available by addressing it through a URL even from within other applications if the data has been given public access.             &lt;br /&gt;            &lt;br /&gt;The big shift is that creating the relational structure of the data by creating tables, fields and their relational constraints is not an explicit part of the development process. From the developers point of view the database is not there, but the data is somewhere in the cloud. No access to a database means: no possibility of using stored procedures. This results in no more hidden logic in stored procedures.             &lt;br /&gt;            &lt;br /&gt;In the Azure Storage model the structure of data is not defined in metadata (table and fields) but this structure is owned by the code in the application. The way the Azure Storage platform knows this structure is by reading attributes which contains metadata placed on classes in the compiled and deployed assemblies.             &lt;br /&gt;            &lt;br /&gt;This influences the solution structure of applications. Working with metadata in assemblies makes automated tested more easy. As there is no visible database we can just mock the data in a unit test. The typical discussions in traditional solution architectures about using which O/R framework is not present when developing Azure applications.             &lt;br /&gt;&lt;strong&gt;             &lt;br /&gt;User Authentication Infrastructure&lt;/strong&gt;             &lt;br /&gt;            &lt;br /&gt;The goal of running an application in the cloud is to reach a very large number of users. From an authentication/authorization point of view, this creates a new challenge for both architects and end-users.             &lt;br /&gt;            &lt;br /&gt;Architects need a new way of authentication and authorization of these users. It will indeed be very challenging to maintain a user database with credentials for millions of different users in your typical application-specific user DB. Moreover, the authentication mechanisms could be passwords, certificates, devices and whatever will be used in the future and would mean we’re facing a high cost for the application maintenance for authentication/authorization purposes only.             &lt;br /&gt;            &lt;br /&gt;From the end-users point of view, using more and more applications in the cloud, all with their own specific credentials and authentication mechanisms will also be problematic. The IT industry is aware of those challenges since a couple of years and is coming up with concepts and standards around “Identity Federation” and “Claims based authorization” to overcome those challenges.             &lt;br /&gt;            &lt;br /&gt;The Azure Services platform implements these industry standards with the Live ID service being able to play a role as “Secure Token Service” (STS) and offers an authorization infrastructure (called the .NET Access Control Service) based on claims which form an abstraction between the identity of the user (proved by authentication) and the right he/she has to perform an action in the application. A claim is just a piece of information about a user on which the application can decide to allow or disallow the use of its functionality. Instead of authenticating within your application the user authenticates to an external Security Token Service. This service can be part of the Azure platform (like Windows Live ID) or third party STS using WS-Trust and WS-Federation standards. After a positive authentication the STS creates a token defined using Security Assertion Markup Language (SAML) and sends it to the requesting client. This token contains a claim which is the piece of information about the user as proof needed for your application to allow some actions. The client sends this token to your application or service instead of its credentials and the token is signed by the STS using a certificate your application has first to register at the STS to recognize the origin of the token. The token contains the claims which are the proof that the user is allowed to do what he/she wants. It’s up to your application to decide what to do with the tokens. (see figure 2)             &lt;br /&gt;            &lt;br /&gt;An STS can have many different pieces of information about the user, some are stored behind the service or others can be calculated out of other claims coming from another STS or authentication service. As the application does not want to receive all these claims the client must ask the target application what claims in particular it needs before asking the STS to deliver the needed signed claims.             &lt;br /&gt;            &lt;br /&gt;This new paradigm for authentication and authorization needed for worldwide scalability influences strongly the solution architecture of our application. The need for a membership and/role database evolves to the need for a cloud based security token service which Azure is offering. To make this shift easier we could implement the Geneva Framework which makes an abstraction on top of on premises role based authorization and the claims based authorization in the cloud             &lt;br /&gt;            &lt;br /&gt;The main purpose of .NET Access Control is to perform claim transformation providing your application with useful claims based on claims from other identity providers. In the current release it can also act as an identity provider itself. &lt;/p&gt;          &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/claeyskurt/WindowsLiveWriter/Theneedforworldwidescalabilityofapplica_BF0E/Image%204%20_%20Figure%201%20Claims%20Bases%20Authorization_4.jpg"&gt;&lt;img title="Image 4 _ Figure 1 Claims Bases Authorization" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="484" alt="Image 4 _ Figure 1 Claims Bases Authorization" src="http://geekswithblogs.net/images/geekswithblogs_net/claeyskurt/WindowsLiveWriter/Theneedforworldwidescalabilityofapplica_BF0E/Image%204%20_%20Figure%201%20Claims%20Bases%20Authorization_thumb_1.jpg" width="627" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;          &lt;p&gt;&lt;strong&gt;Conclusion              &lt;br /&gt;&lt;/strong&gt;            &lt;br /&gt;The Azure deployment model, data access model and authentication/authorization model are three fundamental paradigm shifts in defining solution architectures that are completely new for architects of on-premise applications. Although in most situations it would be possible to have our current architectures hosted on the Azure platform (i.e. applications architected in a sound 3-tier approach with a stateless front-end and an asynchronous link to the back-end processing), they would not benefit from the scalability when not implementing these approaches. These new concepts are core features of the Azure Service Platform and form the base for a worldwide, interned hosted reach of applications in a massively scalable way.             &lt;br /&gt;&lt;img height="1" alt="spacer" src="http://www.microsoft.com/img/spacer.gif" width="24" /&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131620"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131620" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/131620.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2009/04/30/131620.aspx</guid>
            <pubDate>Thu, 30 Apr 2009 11:20:56 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/131620.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2009/04/30/131620.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/131620.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/131620.aspx</trackback:ping>
        </item>
        <item>
            <title>VISUG Back2Basic Presentation LINQ + ADO.NET Entity Framework code and presentation.</title>
            <link>http://geekswithblogs.net/claeyskurt/archive/2009/04/27/131527.aspx</link>
            <description>&lt;p&gt;A few weeks ago I did a a presentation on LINQ and ADO.NET Entity Framework for the VISUG at Microsoft Belgium. Want the code and presentation ?&lt;/p&gt;  &lt;p&gt;Downloads : &lt;a title="code" href="http://www.devitect.net/blogdata/B2BLINQENTFW/B2BLINQENTFW_KurtCLAEYS_Code.zip" target="_blank"&gt;&lt;strong&gt;code&lt;/strong&gt;&lt;/a&gt; and &lt;a href="http://www.devitect.net/blogdata/B2BLINQENTFW/B2BLINQENTFW_KurtCLAEYS.pdf" target="_blank"&gt;&lt;strong&gt;presentation&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131527"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131527" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/131527.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2009/04/27/131527.aspx</guid>
            <pubDate>Tue, 28 Apr 2009 04:12:42 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/131527.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2009/04/27/131527.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/131527.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/131527.aspx</trackback:ping>
        </item>
        <item>
            <title>How to see the T-SQL Query LINQ to SQL or Entity Framework is making out of your LINQ Query ?</title>
            <link>http://geekswithblogs.net/claeyskurt/archive/2009/04/15/131232.aspx</link>
            <description>&lt;p&gt;Today I presented ‘&lt;a href="http://www.visug.be/Eventdetails/tabid/95/EventId/6/Default.aspx" target="_blank"&gt;LINQ to SQL compared to LINQ to Entities&lt;/a&gt;’, a session for the &lt;a href="http://www.visug.be/" target="_blank"&gt;VISUG&lt;/a&gt; at Microsoft Belgium. Attendees asked me how one can see the T-SQL statement that LINQ to SQL or the Entity Framework is generating out of the LINQ Query.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;For LINQ to SQL &lt;/u&gt;: Use the log property of the context to redirect the generated query to the output window of Visual Studio.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;using (MyLINQToSQLClassesDataContext ctx = new MyLINQToSQLClassesDataContext())      &lt;br /&gt;{ &lt;/p&gt;    &lt;p&gt;    &lt;strong&gt;ctx.Log = Console.Out;        &lt;br /&gt;&lt;/strong&gt;      &lt;br /&gt;    var q = from c in ctx.Categories       &lt;br /&gt;                 select new { c, c.Products }; &lt;/p&gt;    &lt;p&gt;    //... &lt;/p&gt;    &lt;p&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;u&gt;For the Entity Framework &lt;/u&gt;: There’s no log property on the context. You have to cast the query to an ObjectQuery which has the ToTraceString() method to see the SQL and write this string to the console.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Console.WriteLine(&lt;strong&gt;((System.Data.Objects.ObjectQuery)q).ToTraceString()&lt;/strong&gt;);&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;You can view the output window in Visual Studio with the &lt;em&gt;Output &lt;/em&gt;menuitem in the &lt;em&gt;View &lt;/em&gt;menu or by pressing CTRL-W,O&lt;/p&gt;  &lt;p&gt;*UPDATE* : For LINQ to SQL there’s another way : &lt;strong&gt;ctx.GetCommand(q).CommandText&lt;/strong&gt;. This allows you to see the T-SQL without executing the query.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131232"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131232" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/131232.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2009/04/15/131232.aspx</guid>
            <pubDate>Wed, 15 Apr 2009 13:23:54 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/131232.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2009/04/15/131232.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/131232.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/131232.aspx</trackback:ping>
        </item>
        <item>
            <title>Back2Basic sessions at Microsoft on LINQ/Data Access in .NET 3.5</title>
            <category>NTECH</category>
            <link>http://geekswithblogs.net/claeyskurt/archive/2009/04/03/130726.aspx</link>
            <description>&lt;p&gt;The &lt;a target="_blank" href="http://www.visug.be"&gt;VISUG&lt;/a&gt; (the main .NET Usergroup in Belgium) and &lt;a target="_blank" href="http://msdn.microsoft.com/nl-be/aa570302.aspx"&gt;Microsoft Belgium&lt;/a&gt; are organizing 3 events for .NET developers. These events will cover existing technologies and are free to attend.&lt;/p&gt;
&lt;p&gt;I’m presenting the sessions on LINQ and data access in .NET 3.5 on &lt;u&gt;April 15 from 02:00 PM till 04:00 PM&lt;/u&gt;. This presentation takes place at the Microsoft Offices in Zaventem.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A language focused overview of the foundations of LINQ in C#3.0 (50 minutes)  &lt;br /&gt;
&lt;/strong&gt;In this session the language enhancements in C#3.0 on which LINQ is based are discussed. You'll learn the syntax and the implementation of Auto Implemented Properties, Local Type Inference, Object and Collection Initializers, Anonymous Types, Extension Methods and Lambda Expressions and see how LINQ is made possible by using combinations of these new extensions in the language.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;LINQ to SQL compared to LINQ to Entities. (50 minutes) &lt;br /&gt;
&lt;/strong&gt;Both are Object-Relational Mapping frameworks in .NET 3.5 but have different goals, qualities, behaviors and their own programmatic approaches towards modeling and defining the metadata. How do they compare to each other ? Which one fits best in which scenarios ? In this session you will be guided in making the correct choice between them for your development environment.&lt;/p&gt;
&lt;p&gt;You can register on the VISUG site &lt;a title="http://www.visug.be/Eventdetails/tabid/95/EventId/6/Default.aspx" target="_blank" href="http://www.visug.be/Eventdetails/tabid/95/EventId/6/Default.aspx"&gt;http://www.visug.be/Eventdetails/tabid/95/EventId/6/Default.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Also check out the other session (ASP.NET Caching on april 29 by &lt;a target="_blank" href="http://www.snowball.be/"&gt;Gill Cleeren&lt;/a&gt;, Integrating Membership, Role Management and Profiles into Web Applications on may 27 by &lt;a target="_blank" href="http://kinnie.blogspot.com"&gt;Pieter Gheysens)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hope to see you there …&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130726"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130726" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/130726.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2009/04/03/130726.aspx</guid>
            <pubDate>Fri, 03 Apr 2009 12:16:45 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/130726.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2009/04/03/130726.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/130726.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/130726.aspx</trackback:ping>
        </item>
        <item>
            <title>Invitation codes no longer needed to sign up for .NET Services and SQL Services</title>
            <category>NTECH</category>
            <link>http://geekswithblogs.net/claeyskurt/archive/2009/04/03/130725.aspx</link>
            <description>&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5cdfbee2-b7d5-4357-a9f6-e66515520a6c" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/ntech"&gt;ntech&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Great news … You don’t need an invitation code anymore to provision services on Azure. Just sign in with a Windows Live ID en you’re ready to go.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update :(thanks Steve!) this is only so fo the &lt;u&gt;.NET Services&lt;/u&gt; and &lt;u&gt;SQL Services&lt;/u&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Goto &lt;a title="http://portal.ex.azure.microsoft.com/" href="http://portal.ex.azure.microsoft.com/"&gt;http://portal.ex.azure.microsoft.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130725"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130725" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/130725.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2009/04/03/130725.aspx</guid>
            <pubDate>Fri, 03 Apr 2009 11:07:15 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/130725.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2009/04/03/130725.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/130725.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/130725.aspx</trackback:ping>
        </item>
        <item>
            <title>Impersonate the user running the browser in a WCF service called by an ASP.NET webapplication.</title>
            <category>NTECH</category>
            <link>http://geekswithblogs.net/claeyskurt/archive/2009/04/03/130723.aspx</link>
            <description>&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt"&gt;In default configurations web applications and web services are running under the credentials of a predefined user account. For ASP.NET webapplications this is the ASPNET (or similar) account and for WCF services this is the user that started the servicehost or the user associated as logon account for the windows service hosting the services.      &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;This means access to resources is restricted by this account. This is most often a dedicated account and not related to a real user. In a good secure environment the decision should have been made to give those accounts minimal rights, just enough to allow the hosting. So this account will not have the rights to access resources (files, databases) like normal users do.      &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;Impersonation is the way to allow that the code in services (or in webapplications) can run under the credentials of the user accessing this webservice (or webapplication).      &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;In an architecture where the services with the logic are separated from the webapplication with the UI we can have 3 accounts executing code or needing access to resources. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;img title="Figure1" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="206" alt="Figure1" src="http://geekswithblogs.net/images/geekswithblogs_net/claeyskurt/WindowsLiveWriter/ImpersonatetheuserrunningthebrowserinaW_11611/Figure1_2.gif" width="542" border="0" /&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt"&gt;It makes sense that the user behind the browser is the one that must have the rights to allow the code in the WCF service to access the resources.      &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;A WCF service can easily be configured to do impersonation:      &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;1. Add the OperationBehavior attribute to the method that is called and needs to run under the impersonated user credentials and set Impersonation to allowed. The OperationBehavior attribute must be placed in implementation class, not on the interface ! &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;  &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;[&lt;span style="color: #2b91af"&gt;OperationBehavior&lt;/span&gt;(Impersonation = &lt;span style="color: #2b91af"&gt;ImpersonationOption&lt;/span&gt;.Allowed)]      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;public&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt; &lt;span style="color: blue"&gt;string&lt;/span&gt; DoSomething(&lt;span style="color: blue"&gt;string&lt;/span&gt; data)      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;{ &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;… &lt;/span&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt; &lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;//Access to the resource &lt;/span&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;… &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;}&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;  &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt"&gt;2. In the WCF configuration write a servicebehavior for the service which sets the impersonateCallerForAllOperations attribute of the serviceAuthorization element to “true”  &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;behaviors&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;gt;&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;serviceBehaviors&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;gt; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;            &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;behavior&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;name&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;"&lt;span style="color: blue"&gt;Service1Behave&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 108pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;serviceAuthorization&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt; &lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;impersonateCallerForAllOperations&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;"&lt;span style="color: blue"&gt;true&lt;/span&gt;"&lt;span style="color: blue"&gt;/&amp;gt; &lt;/span&gt;&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;            &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;behavior&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;gt; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;serviceBehaviors&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;gt; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;behaviors&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;gt; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;services&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;gt; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;service&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;name&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;"&lt;span style="color: blue"&gt;ServiceImplementation.ServiceImplementation&lt;/span&gt;" &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;                  &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;behaviorConfiguration&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;"&lt;span style="color: blue"&gt;Service1Behave&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;            &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;endpoint&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;                  &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;address&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;"&lt;span style="color: blue"&gt;http://localhost:9876/TestService&lt;/span&gt;"&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;                  &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;binding&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;"&lt;span style="color: blue"&gt;wsHttpBinding&lt;/span&gt;" &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;bindingConfiguration&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;""&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;                  &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;contract&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;"&lt;span style="color: blue"&gt;ServiceInterface.IServiceInterface&lt;/span&gt;"&lt;span style="color: blue"&gt; /&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="color: blue"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;service&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;gt; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;services&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;  &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt"&gt;On the client side (which is the ASP.NET website) set the AllowedImpersonationLevel to Impersonation on the ChannelFactory&amp;lt;T&amp;gt; or ClientBase&amp;lt;T&amp;gt; before calling the method.&lt;/span&gt;&lt;span style="font-size: 10pt"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt"&gt;a. when using ChannelFactory&amp;lt;T&amp;gt;: &lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;System.ServiceModel.&lt;span style="color: #2b91af"&gt;ChannelFactory&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;MyChannelClass&lt;/span&gt;&amp;gt; channelFactory; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;channelFactory = &lt;span style="color: blue"&gt;new&lt;/span&gt; System.ServiceModel.&lt;span style="color: #2b91af"&gt;ChannelFactory&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;MyChannelClass&lt;/span&gt;&amp;gt;(&lt;span style="color: #a31515"&gt;"EP"&lt;/span&gt;); &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;channelFactory.Credentials.Windows.AllowedImpersonationLevel = System.Security.Principal.&lt;span style="color: #2b91af"&gt;TokenImpersonationLevel&lt;/span&gt;.Impersonation; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;ServiceInterface.&lt;span style="color: #2b91af"&gt;IServiceInterface&lt;/span&gt; channel; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;channel = channelFactory.CreateChannel(); &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;string&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt; s; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;s = channel.DoSomething(&lt;span style="color: #a31515"&gt;"devitect"&lt;/span&gt;); &lt;/span&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt"&gt;b. when using a ClientBase&amp;lt;T&amp;gt; proxy. &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt"&gt;&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: #2b91af; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;MyClient&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt; myClient; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;myClient = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;MyClient&lt;/span&gt;(&lt;span style="color: #a31515"&gt;"EP"&lt;/span&gt;); &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;myClient.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.&lt;span style="color: #2b91af"&gt;TokenImpersonationLevel&lt;/span&gt;.Impersonation; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;string&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt; s;      &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;s = myClient.DoSomething(&lt;span style="color: #a31515"&gt;"devitect"&lt;/span&gt;); &lt;/span&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt"&gt;This results in running the code in the serviceoperation (the DoSomething method) under the credentials of the user running the process on the client. This is the ASPNET account and still not the user behind the browser.      &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;So we have to make sure that the calling code in the webapplication can now impersonate in its turn the user behind the browser. &lt;/span&gt;&lt;span style="font-size: 10pt"&gt;Again this can be done very easy by specifying the identity tag in the system.web part of the configuration file for the webbapplication. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;system.web&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;gt; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;…&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;identity&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;impersonate&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;"&lt;span style="color: blue"&gt;true&lt;/span&gt;"&lt;span style="color: blue"&gt;/&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt"&gt;&lt;span style="font-size: 10pt"&gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;… &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;system.web&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;  &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt"&gt;But now we created a potential pitfall. By setting this suddenly all the code in the webapplication is now running under the account of the user behind the browser. Which could not always be desired.      &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;We need a way to impersonate the user just before calling the WCF service and stop impersonating just after we received the answer.  &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;You can use the WindowsImpersonationContext class for this. This class has to be set to the result of the static method WindowsIdentity.Impersonate() which needs the usertoken of the user you want to impersonate as parameter. This usertoken can be found on a property of the WindowsIdentity class which is set to the identity of the current user in the Httpcontext. This is the identity of the user using the browser. After the call you can undo the impersonation with the Undo method on this WindowsImpersonationContext class and the code will be running under the ASPNET account again. We are just temporarily impersonating the user.&lt;/span&gt;&lt;span style="font-size: 10pt"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;  &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt"&gt;Code to do this: &lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: #2b91af; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;WindowsIdentity&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt; windowsIdentity = (&lt;span style="color: #2b91af"&gt;WindowsIdentity&lt;/span&gt;)&lt;span style="color: #2b91af"&gt;HttpContext&lt;/span&gt;.Current.User.Identity;&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: #2b91af; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;WindowsImpersonationContext&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt; windowsImpersonationContext; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;windowsImpersonationContext = &lt;/span&gt;&lt;span style="font-size: 10pt; color: #2b91af; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;WindowsIdentity&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;.Impersonate(windowsIdentity.Token); &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;//… call the service &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;windowsImpersonationContext.Undo(); &lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:035a60f7-6b93-45fd-bb56-eeb5c0793192" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ntech" rel="tag"&gt;ntech&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130723"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130723" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/130723.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2009/04/03/130723.aspx</guid>
            <pubDate>Fri, 03 Apr 2009 10:46:11 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/130723.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2009/04/03/130723.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/130723.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/130723.aspx</trackback:ping>
        </item>
        <item>
            <title>Slides of the SyntraWest ITClub seminar on Data Access with ADO.NET 3.5</title>
            <link>http://geekswithblogs.net/claeyskurt/archive/2009/03/31/130546.aspx</link>
            <description>&lt;p&gt;&lt;font size="2"&gt;Last week I gave this workshop/presentation for the &lt;/font&gt;&lt;a title="syntrawest" target="_blank" href="http://www.syntrawest.be/informatics"&gt;&lt;font size="2"&gt;syntrawest&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; ITClub on Data Access with ADO.NET 3.5. You can have get a printout of the slides &lt;/font&gt;&lt;a target="_blank" href="http://www.devitect.net/blogdata/DataAccessADO.NET35_KurtCLAEYS.pdf"&gt;&lt;strong&gt;&lt;font size="4"&gt;here&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;Content of the presentation :&lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;font size="2"&gt;&lt;font face="Arial"&gt;LINQ as query language&lt;/font&gt; &lt;/font&gt;&lt;/li&gt;
    &lt;li&gt;&lt;font size="2"&gt;&lt;font face="Arial"&gt;LINQ to SQL&lt;/font&gt; &lt;/font&gt;&lt;/li&gt;
    &lt;li&gt;&lt;font size="2"&gt;&lt;font face="Arial"&gt;LINQ to Entities (=ADO.NET Entity Framework)&lt;/font&gt; &lt;/font&gt;&lt;/li&gt;
    &lt;li&gt;&lt;font size="2"&gt;&lt;font face="Arial"&gt;ENTITY SQL&lt;/font&gt; &lt;/font&gt;&lt;/li&gt;
    &lt;li&gt;&lt;font size="2"&gt;&lt;font face="Arial"&gt;ADO.NET DataServices&lt;/font&gt; &lt;/font&gt;&lt;/li&gt;
    &lt;li&gt;&lt;font size="2"&gt;&lt;font face="Arial"&gt;ASP.NET Dynamic Data&lt;/font&gt; &lt;/font&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;font size="2"&gt;More workshops are planned :&lt;/font&gt;&lt;/p&gt;
&lt;font face="Arial"&gt;&lt;font face="Arial"&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;font size="2"&gt;26/05/09: Windows Communication Foundation (WCF) - A deep dive on Security &lt;/font&gt;&lt;font face="Arial"&gt;&lt;font face="Arial"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt;
    &lt;li&gt;&lt;font size="2"&gt;16/06/09: Windows Workflow Foundation (WF) - A deep dive on Workflow Services &lt;/font&gt;&lt;/li&gt;
    &lt;li&gt;&lt;font size="2"&gt;september/october : The Azure Services Platform &lt;/font&gt;&lt;/li&gt;
    &lt;li&gt;&lt;font size="2"&gt;nov/dec : WCF 4.0, Dublin hosting and Oslo &lt;/font&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/font&gt;&lt;/font&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130546"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130546" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/130546.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2009/03/31/130546.aspx</guid>
            <pubDate>Tue, 31 Mar 2009 07:22:30 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/130546.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2009/03/31/130546.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/130546.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/130546.aspx</trackback:ping>
        </item>
        <item>
            <title>TechFest Poland cancelled</title>
            <link>http://geekswithblogs.net/claeyskurt/archive/2009/03/30/130532.aspx</link>
            <description>&lt;p&gt;I was planned to have a great speaking gig on the Azure Services Platform in Poland at the &lt;a target="_blank" href="http://www.techfest2009.pl/"&gt;TechFest09&lt;/a&gt; conference. &lt;br /&gt;
But - too bad - the whole conference is cancelled (economic situation, other reasons, ....) &lt;br /&gt;
Sorry for me, the other speakers and people from the Polish community.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130532"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130532" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/130532.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2009/03/30/130532.aspx</guid>
            <pubDate>Mon, 30 Mar 2009 12:04:07 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/130532.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2009/03/30/130532.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/130532.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/130532.aspx</trackback:ping>
        </item>
    </channel>
</rss>