{"id":391,"date":"2010-09-03T00:26:00","date_gmt":"2010-09-03T09:26:00","guid":{"rendered":"http:\/\/www.cloudidentity.com\/blog\/2010\/09\/03\/the-table-of-content-of-programming-windows-identity-foundation\/"},"modified":"2010-09-03T00:26:00","modified_gmt":"2010-09-03T09:26:00","slug":"the-table-of-content-of-programming-windows-identity-foundation","status":"publish","type":"post","link":"https:\/\/www.cloudidentity.com\/blog\/2010\/09\/03\/the-table-of-content-of-programming-windows-identity-foundation\/","title":{"rendered":"The Table of Content of Programming Windows Identity Foundation"},"content":{"rendered":"<p><a href=\"http:\/\/www.amazon.com\/gp\/product\/0735627185?ie=UTF8&amp;tag=wwwcloudident-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0735627185\"><img decoding=\"async\" border=\"0\" alt=\"\" src=\"http:\/\/www.maseghepensu.it\/4136wZUo01L._SL160_.jpg\" \/><\/a><img loading=\"lazy\" decoding=\"async\" border=\"0\" alt=\"\" src=\"http:\/\/www.assoc-amazon.com\/e\/ir?t=wwwcloudident-20&amp;l=as2&amp;o=1&amp;a=0735627185\" width=\"1\" height=\"1\" \/><\/p>\n<p>Various readers asked me to provide the table of content of <a href=\"http:\/\/amzn.to\/batS4f\">Programming Windows Identity Foundation<\/a>, so here it is. The formatting is not perfect, but I wanted to make sure to keep the page numbers and indentation so that you can assess how much space has been dedicated to any given topic you want to study.<\/p>\n<p>I won\u2019t repeat here what I wrote in the book intro (available also in <a href=\"http:\/\/blogs.msdn.com\/b\/microsoft_press\/archive\/2010\/08\/16\/rtm-d-today-programming-windows-identity-foundation.aspx\">this Microsoft Press post<\/a>), but I do want to add a couple of notes.<\/p>\n<p>1. Although the topics covered by the book are a superset of the ones in the training kit, it\u2019s hard to make comparisons. The book packs information at <strong><em>much<\/em><\/strong> higher density and goes significantly deeper than the kit. Apart from something in Part I there are no step-by-step instructions, as you can expect from a title in the Developer Pro References series. <\/p>\n<p>2. Apart from the parts explaining protocols and patterns, all the book is firmly anchored in code and gives very concrete guidance on how to implement the topic at hand. The only exception is Chapter 7: that chapter covers topics for which there are no official bits yet, and giving cove would have meant filling pages and pages of custom tactical code which could have become obsolete soon. What you get in chapter 7 is an intro to the topics (for example there are swimlane diagrams for OAuth 2 and similar) which helps you to wrap your head around the issue should you have to cope with it before official solutions arise. The exception to the exception is the part about MVC, where I do provide the code of a very simple and elegant solution (I wasn\u2019t the one coming up with it :-)) which integrates really well with the MVC model.<\/p>\n<p>And now, without further ado, the TOOOC&#160;&#160; \u266a\u266c<\/p>\n<div class=\"WordSection1\">\n<p style=\"line-height: 26.05pt;margin-bottom: 19pt\" class=\"Default\"><b><span style=\"font-size: 26pt\">Table of Contents <\/span><\/b><span style=\"font-size: 26pt\">       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 3pt 39pt\" class=\"Pa10\"><b><span>Foreword xi <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 3pt 39pt\" class=\"Pa10\"><b><span>Acknowledgments xiii <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 3pt 39pt\" class=\"Pa10\"><b><span>Introduction xvii <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"text-indent: -39pt;margin: 14pt 0in 0pt 39pt\" class=\"Pa11\"><span class=\"A6\"><span style=\"font-size: 11pt\">Part I <\/span><\/span><b><span>Windows Identity Foundation for Everybody <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"text-indent: -39pt;margin: 9pt 0in 2pt 39pt\" class=\"Pa12\"><b><span>1 <\/span><\/b><b><span>Claims-Based Identity 3 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>What Is Claims-Based Identity? 3 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Traditional Approaches to Authentication 4 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Decoupling Applications from the Mechanics of Identity and Access 8 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>WIF Programming Model 15 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>An API for Claims-Based Identity 16 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>WIF\u2019s Essential Behavior 16 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><span class=\"SpellE\"><b><i><span>IClaimsIdentity<\/span><\/i><\/b><\/span><b><i><span> <\/span><\/i><\/b><b><span>and <span class=\"SpellE\"><i>IClaimsPrincipal<\/i><\/span><i> <\/i>18 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>Summary 21 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"text-indent: -39pt;margin: 9pt 0in 2pt 39pt\" class=\"Pa12\"><b><span>2 <\/span><\/b><b><span>Core ASP<\/span><\/b><span>.<b>NET Programming 23 <\/b>        <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>Externalizing Authentication 24 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>WIF Basic Anatomy: What You Get Out of the Box 24 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Our First Example: Outsourcing Web Site Authentication to an STS 25 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>Authorization and Customization 33 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>ASP<\/span><\/b><span>.<b>NET Roles and Authorization Compatibility 36 <\/b>        <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Claims and Customization 37 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>A First Look at <i>&lt;<span class=\"SpellE\">microsoft<span style=\"font-style: normal;font-weight: normal\">.<\/span>identityModel<\/span>&gt; <\/i>39 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Basic Claims-Based Authorization 41 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin-left: 63pt\" class=\"MsoNormal\"><b><span>Summary 46         <\/p>\n<p>       <\/span><\/b><\/p>\n<p style=\"text-indent: -39pt;margin: 14pt 0in 0pt 39pt\" class=\"Pa11\"><span class=\"A6\"><span style=\"font-size: 11pt\">Part II <\/span><\/span><b><span>Windows Identity Foundation for Identity Developers <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"text-indent: -39pt;margin: 9pt 0in 2pt 39pt\" class=\"Pa12\"><b><span>3 <\/span><\/b><b><span>WIF Processing Pipeline in ASP<\/span><\/b><span>.<b>NET 51<\/b>        <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>Using Windows Identity Foundation 52<\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>WS-Federation: Protocol, Tokens, Metadata <\/span><\/b><span>.<b>54<\/b>        <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>WS-Federation 55<\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>The Web Browser Sign-in Flow 57<\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>A Closer Look to Security Tokens 62<\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Metadata Documents 69<\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>How WIF Implements WS-Federation 72<\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>The WIF Sign-in Flow <\/span><\/b><span>.<b>74<\/b>        <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>WIF Configuration and Main Classes 82<\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>A Second Look at <i>&lt;<span class=\"SpellE\">microsoft<span style=\"font-style: normal;font-weight: normal\">.<\/span>identityModel<\/span>&gt; <\/i><\/span><\/b><span>.<b>82<\/b>        <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Notable Classes 90<\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>Summary 94 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"text-indent: -39pt;margin: 9pt 0in 2pt 39pt\" class=\"Pa12\"><b><span>4 <\/span><\/b><b><span>Advanced ASP<\/span><\/b><span>.<b>NET Programming <\/b>.<b>95<\/b>        <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>More <span class=\"GramE\">About<\/span> Externalizing Authentication 96<\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Identity Providers <\/span><\/b><span>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..<b>97<\/b>        <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Federation Providers <\/span><\/b><span>.<b>99<\/b>        <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>The WIF STS Template <\/span><\/b><span>.<b>102<\/b>        <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>Single Sign-on, Single Sign-out, and Sessions 112<\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Single Sign-on <\/span><\/b><span>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.<b>113<\/b>        <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Single Sign-out <\/span><\/b><span>.<b>115<\/b>        <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>More <span class=\"GramE\">About<\/span> Sessions <\/span><\/b><span>.<b>122<\/b>        <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>Federation <\/span><\/b><span>.<b>126<\/b>        <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Transforming Claims 129<\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Pass-Through Claims 134<\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Modifying Claims and Injecting New Claims 135<\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Home Realm Discovery <\/span><\/b><span>.<b>135<\/b>        <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin-left: 85.5pt\" class=\"MsoNormal\"><b><span>Step-up Authentication, Multiple Credential Types, and Similar Scenarios <\/span><\/b><span>.<b>140         <\/p>\n<p>       <\/b><\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>Claims Processing at the RP 141 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Authorization 142 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Authentication and Claims Processing 142 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>Summary 143 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"text-indent: -39pt;margin: 9pt 0in 2pt 39pt\" class=\"Pa12\"><b><span>5 <\/span><\/b><b><span>WIF and WCF 145 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>The Basics 146 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Passive <span class=\"SpellE\">vs<span style=\"font-weight: normal\">.<\/span>Active<\/span> 146 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Canonical Scenario 154 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Custom <span class=\"SpellE\">TokenHandlers<\/span> 163 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Object Model and Activation 167 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>Client-Side Features 170 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Delegation and Trusted Subsystems 170 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Taking Control of Token Requests 179 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>Summary 184 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"text-indent: -39pt;margin: 9pt 0in 2pt 39pt\" class=\"Pa12\"><b><span>6 <\/span><\/b><b><span>WIF and Windows Azure 185 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>The Basics 186 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Packages and <span class=\"SpellE\">Config<\/span> Files 187 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>The WIF Runtime Assembly and Windows Azure <\/span><\/b><span>&#8230;&#8230;&#8230;&#8230;&#8230;.<b>188 <\/b>        <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Windows Azure and X<\/span><\/b><span>.<b>509 Certificates 188 <\/b>        <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>Web Roles 190 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Sessions 191 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Endpoint Identity and Trust Management 192 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>WCF Roles 195 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Service Metadata 195 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Sessions 196 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Tracing and Diagnostics 201 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>WIF and ACS 204 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 63pt\" class=\"Pa13\"><b><span>Custom STS in the Cloud 205 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>Dynamic Metadata Generation 205 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin: 0in 0in 1pt 87pt\" class=\"Pa14\"><b><span>RP Management 213 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"margin-left: 63pt\" class=\"MsoNormal\"><b><span>Summary 213         <\/p>\n<p>       <\/span><\/b><\/p>\n<p style=\"line-height: 12.05pt;text-indent: -39pt;margin: 9pt 0in 2pt 39pt\" class=\"MsoNormal\"><b><span>7 <\/span><\/b><b><span>The Road <span class=\"GramE\">Ahead<\/span> <\/span><\/b><span>.<\/span><b><span>215<\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"line-height: 9.55pt;margin: 0in 0in 1pt 63pt\" class=\"MsoNormal\"><b><span>New Scenarios and Technologies 215<\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"line-height: 9.55pt;margin: 0in 0in 1pt 87pt\" class=\"MsoNormal\"><b><span>ASP<\/span><\/b><span>.<\/span><b><span>NET MVC 216<\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"line-height: 9.55pt;margin: 0in 0in 1pt 87pt\" class=\"MsoNormal\"><b><span>Silverlight <\/span><\/b><span>.<\/span><b><span>223<\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"line-height: 9.55pt;margin: 0in 0in 1pt 87pt\" class=\"MsoNormal\"><b><span>SAML Protocol 229<\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"line-height: 9.55pt;margin: 0in 0in 1pt 87pt\" class=\"MsoNormal\"><b><span>Web Identities and REST <\/span><\/b><span>.<\/span><b><span>230<\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p style=\"line-height: 9.55pt;margin: 0in 0in 1pt 63pt\" class=\"MsoNormal\"><b><span>Conclusion <\/span><\/b><span>.<\/span><b><span>239 <\/span><\/b><span>       <\/p>\n<p>     <\/span><\/p>\n<p class=\"MsoNormal\"><b><span>Index 241<\/span><\/b><\/p>\n<\/p><\/div>\n<div style=\"clear:both\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Various readers asked me to provide the table of content of Programming Windows Identity Foundation, so here it is. The formatting is not perfect, but I wanted to make sure to keep the page numbers and indentation so that you can assess how much space has been dedicated to any given topic you&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"categories":[29,9,5,4],"tags":[],"class_list":["post-391","post","type-post","status-publish","format-standard","hentry","category-book","category-identity","category-wif","category-windows-identity-foundation"],"_links":{"self":[{"href":"https:\/\/www.cloudidentity.com\/blog\/wp-json\/wp\/v2\/posts\/391","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cloudidentity.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cloudidentity.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cloudidentity.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cloudidentity.com\/blog\/wp-json\/wp\/v2\/comments?post=391"}],"version-history":[{"count":0,"href":"https:\/\/www.cloudidentity.com\/blog\/wp-json\/wp\/v2\/posts\/391\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.cloudidentity.com\/blog\/wp-json\/wp\/v2\/media?parent=391"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cloudidentity.com\/blog\/wp-json\/wp\/v2\/categories?post=391"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cloudidentity.com\/blog\/wp-json\/wp\/v2\/tags?post=391"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}