<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="2.0.9" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>SharePoint Shelter</title>
	<link>http://www.sharepointsecurity.com/blog</link>
	<description>Securing SharePoint 2007 -- By Adam Buenz [WSS MVP]</description>
	<pubDate>Tue, 12 May 2009 13:43:37 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.9</generator>
	<language>en</language>
			<item>
		<title>Protected Constructors For Abstract Classes</title>
		<link>http://www.sharepointsecurity.com/blog/sharepoint/protected-constructors-for-abstract-classes/</link>
		<comments>http://www.sharepointsecurity.com/blog/sharepoint/protected-constructors-for-abstract-classes/#comments</comments>
		<pubDate>Tue, 12 May 2009 13:40:52 +0000</pubDate>
		<dc:creator>Adam Buenz</dc:creator>
		
		<category>SharePoint</category>

		<category>SharePoint 2007 Development</category>

		<guid isPermaLink="false">http://www.sharepointsecurity.com/blog/sharepoint/protected-constructors-for-abstract-classes/</guid>
		<description><![CDATA[One code modification Resharper 4.0 will suggest is that if a public constructor is located in an abstract class, it should be adjusted to use the protected access modifier if currently public:

So, from this:
Select For Unformatted Code
C#:




public abstract class AbstractClass


&#123;


public AbstractClass&#40;&#41;


&#123;


&#125;


&#125; 






To this:
Select For Unformatted Code
C#:




public abstract class AbstractClass


&#123;


protected AbstractClass&#40;&#41;


&#123;


&#125;


&#125; 






So, why is this a [...]]]></description>
			<content:encoded><![CDATA[<p>One code modification Resharper 4.0 will suggest is that if a public constructor is located in an abstract class, it should be adjusted to use the protected access modifier if currently public:</p>
<p><img src="http://www.sharepointsecurity.com/blog/img/Resharper_Constructor.jpg" /></p>
<p>So, from this:</p>
<div class="igBar"><span id="lcsharp-3"><a href="#" onclick="javascript:showPlainTxt('csharp-3'); return false;">Select For Unformatted Code</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-3">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">public</span> abstract <span style="color: #FF0000;">class</span> AbstractClass</div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">public</span> AbstractClass<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>To this:</p>
<div class="igBar"><span id="lcsharp-4"><a href="#" onclick="javascript:showPlainTxt('csharp-4'); return false;">Select For Unformatted Code</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-4">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">public</span> abstract <span style="color: #FF0000;">class</span> AbstractClass</div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">protected</span> AbstractClass<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
So, why is this a good code edit?</p>
<p>Well, having a public constructor on an abstract class in the terms of code architecture is irrational since the abstract class can’t be instantiated directly; it is instead created by instantiating the deriving type. Thus only derived types have access to the abstract class constructor. Protected more adequately describes a germane access modifier for the constructor as well as ensuring requisite inheritor types have constructor access.</p>
<p>More noticeably, appropriate access modifier decoration will in turn not populate Intellisence with a bunch of useless crap <img src='http://www.sharepointsecurity.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</p>
<p class="akst_link"><a href="http://www.sharepointsecurity.com/blog/?p=300&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_300" class="akst_share_link" rel="nofollow">Share This</a>
</p><!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Recommend This Post</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.sharepointsecurity.com/blog/sharepoint/protected-constructors-for-abstract-classes/&amp;title=Protected+Constructors+For+Abstract+Classes" title="Add 'Protected Constructors For Abstract Classes' a Del.icio.us"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Protected Constructors For Abstract Classes' a Del.icio.us" alt="Add 'Protected Constructors For Abstract Classes' a Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.sharepointsecurity.com/blog/sharepoint/protected-constructors-for-abstract-classes/&amp;title=Protected+Constructors+For+Abstract+Classes" title="Add 'Protected Constructors For Abstract Classes' a digg"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Protected Constructors For Abstract Classes' a digg" alt="Add 'Protected Constructors For Abstract Classes' a digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.sharepointsecurity.com/blog/sharepoint/protected-constructors-for-abstract-classes/" title="Add 'Protected Constructors For Abstract Classes' a Technorati"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Protected Constructors For Abstract Classes' a Technorati" alt="Add 'Protected Constructors For Abstract Classes' a Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://www.sharepointsecurity.com/blog/sharepoint/protected-constructors-for-abstract-classes/" title="Add 'Protected Constructors For Abstract Classes' a Bloglines"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'Protected Constructors For Abstract Classes' a Bloglines" alt="Add 'Protected Constructors For Abstract Classes' a Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http://www.sharepointsecurity.com/blog/sharepoint/protected-constructors-for-abstract-classes/&amp;T=Protected+Constructors+For+Abstract+Classes" title="Add 'Protected Constructors For Abstract Classes' a Netscape"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/netscape.gif" title="Add 'Protected Constructors For Abstract Classes' a Netscape" alt="Add 'Protected Constructors For Abstract Classes' a Netscape" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://www.sharepointsecurity.com/blog/sharepoint/protected-constructors-for-abstract-classes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Multiple SPListItemCollection Query With SPFieldLookupValue</title>
		<link>http://www.sharepointsecurity.com/blog/sharepoint/multiple-splistitemcollection-query-with-spfieldlookupvalue/</link>
		<comments>http://www.sharepointsecurity.com/blog/sharepoint/multiple-splistitemcollection-query-with-spfieldlookupvalue/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 17:36:57 +0000</pubDate>
		<dc:creator>Adam Buenz</dc:creator>
		
		<category>SharePoint</category>

		<category>SharePoint 2007 Development</category>

		<guid isPermaLink="false">http://www.sharepointsecurity.com/blog/sharepoint/multiple-splistitemcollection-query-with-spfieldlookupvalue/</guid>
		<description><![CDATA[While SPList objects do not sustain true relational integrity due to the inherent nature of unstructured SharePoint data storage (in the current version at least), it is common within business applications to use Lookup field types are leveraged to build weak references between SharePoint lists. As such, typed collection queries become important, combining LINQ with [...]]]></description>
			<content:encoded><![CDATA[<p>While <span style="font-weight: bold">SPList</span> objects do not sustain true relational integrity due to the inherent nature of unstructured SharePoint data storage (in the current version at least), it is common within business applications to use Lookup field types are leveraged to build weak references between SharePoint lists. As such, typed collection queries become important, combining LINQ with method chaining allows us to write succinct <span style="font-weight: bold">SPListItem</span> returns.</p>
<p>Firstly, let's make some requisite test proxy objects:</p>
<div class="igBar"><span id="lcsharp-7"><a href="#" onclick="javascript:showPlainTxt('csharp-7'); return false;">Select For Unformatted Code</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-7">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">SPWeb curWeb = SPContext.<span style="color: #0000FF;">Current</span>.<span style="color: #0000FF;">Web</span>;</div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">SPList list1 = curWeb.<span style="color: #0000FF;">Lists</span><span style="color: #000000;">&#91;</span><span style="color: #808080;">"My First List"</span><span style="color: #000000;">&#93;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">SPList list2 = curWeb.<span style="color: #0000FF;">Lists</span><span style="color: #000000;">&#91;</span><span style="color: #808080;">"My Second List"</span><span style="color: #000000;">&#93;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Now, let’s assume the following business requirement. I want to loop through list1, and match a returned <span style="font-weight: bold">SPField</span> value to a string condition defined by a literal. Subsequently, the return will be used on the list2 <span style="font-weight: bold">SPList</span> object within the <span style="font-weight: bold">Where</span> clause. This is considered in the following code snippet:</p>
<div class="igBar"><span id="lcsharp-8"><a href="#" onclick="javascript:showPlainTxt('csharp-8'); return false;">Select For Unformatted Code</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-8">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">var resultSet  = list1.<span style="color: #0000FF;">Items</span>.<span style="color: #0000FF;">Cast</span>&lt;SPListItem&gt;<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">.<span style="color: #0000FF;">Where</span><span style="color: #000000;">&#40;</span>i =&gt; Equals <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">String</span>.<span style="color: #0000FF;">Compare</span><span style="color: #000000;">&#40;</span>i<span style="color: #000000;">&#91;</span><span style="color: #808080;">"Property To Match #1"</span><span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>, <span style="color: #808080;">"Example String Literal"</span><span style="color: #000000;">&#41;</span>, <span style="color: #FF0000;color:#800000;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">.<span style="color: #0000FF;">SelectMany</span><span style="color: #000000;">&#40;</span>x =&gt; list2.<span style="color: #0000FF;">Items</span>.<span style="color: #0000FF;">Cast</span>&lt;SPListItem&gt;<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">.<span style="color: #0000FF;">Where</span><span style="color: #000000;">&#40;</span>i =&gt; Equals<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">String</span>.<span style="color: #0000FF;">Compare</span><span style="color: #000000;">&#40;</span><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> SPFieldLookupValue<span style="color: #000000;">&#40;</span>x<span style="color: #000000;">&#91;</span><span style="color: #808080;">"Client"</span><span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">LookupValue</span>, <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span><span style="color: #000000;">&#41;</span> i<span style="color: #000000;">&#91;</span><span style="color: #808080;">"Property To Match #2"</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span>, <span style="color: #FF0000;color:#800000;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p>
The above code is arguable that the second casting operation for the typed collection build should be broken out into a separate variable before the call and replacing the <span style="font-weight: bold">Cast</span> statement within <span style="font-weight: bold">SelectMany </span>with the result of the call using <span style="font-weight: bold">ToList</span> to forces immediate execution. Meh. <img src='http://www.sharepointsecurity.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</p>
<p class="akst_link"><a href="http://www.sharepointsecurity.com/blog/?p=299&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_299" class="akst_share_link" rel="nofollow">Share This</a>
</p><!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Recommend This Post</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.sharepointsecurity.com/blog/sharepoint/multiple-splistitemcollection-query-with-spfieldlookupvalue/&amp;title=Multiple+SPListItemCollection+Query+With+SPFieldLookupValue" title="Add 'Multiple SPListItemCollection Query With SPFieldLookupValue' a Del.icio.us"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Multiple SPListItemCollection Query With SPFieldLookupValue' a Del.icio.us" alt="Add 'Multiple SPListItemCollection Query With SPFieldLookupValue' a Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.sharepointsecurity.com/blog/sharepoint/multiple-splistitemcollection-query-with-spfieldlookupvalue/&amp;title=Multiple+SPListItemCollection+Query+With+SPFieldLookupValue" title="Add 'Multiple SPListItemCollection Query With SPFieldLookupValue' a digg"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Multiple SPListItemCollection Query With SPFieldLookupValue' a digg" alt="Add 'Multiple SPListItemCollection Query With SPFieldLookupValue' a digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.sharepointsecurity.com/blog/sharepoint/multiple-splistitemcollection-query-with-spfieldlookupvalue/" title="Add 'Multiple SPListItemCollection Query With SPFieldLookupValue' a Technorati"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Multiple SPListItemCollection Query With SPFieldLookupValue' a Technorati" alt="Add 'Multiple SPListItemCollection Query With SPFieldLookupValue' a Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://www.sharepointsecurity.com/blog/sharepoint/multiple-splistitemcollection-query-with-spfieldlookupvalue/" title="Add 'Multiple SPListItemCollection Query With SPFieldLookupValue' a Bloglines"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'Multiple SPListItemCollection Query With SPFieldLookupValue' a Bloglines" alt="Add 'Multiple SPListItemCollection Query With SPFieldLookupValue' a Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http://www.sharepointsecurity.com/blog/sharepoint/multiple-splistitemcollection-query-with-spfieldlookupvalue/&amp;T=Multiple+SPListItemCollection+Query+With+SPFieldLookupValue" title="Add 'Multiple SPListItemCollection Query With SPFieldLookupValue' a Netscape"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/netscape.gif" title="Add 'Multiple SPListItemCollection Query With SPFieldLookupValue' a Netscape" alt="Add 'Multiple SPListItemCollection Query With SPFieldLookupValue' a Netscape" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://www.sharepointsecurity.com/blog/sharepoint/multiple-splistitemcollection-query-with-spfieldlookupvalue/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CAC Enabled Anonymous Sharepoint Sites</title>
		<link>http://www.sharepointsecurity.com/blog/sharepoint/cac-enabled-anonymous-sharepoint-sites/</link>
		<comments>http://www.sharepointsecurity.com/blog/sharepoint/cac-enabled-anonymous-sharepoint-sites/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 13:38:34 +0000</pubDate>
		<dc:creator>Noni Hernandez</dc:creator>
		
		<category>SharePoint</category>

		<category>SharePoint 2007 Architecture</category>

		<guid isPermaLink="false">http://www.sharepointsecurity.com/blog/sharepoint/cac-enabled-anonymous-sharepoint-sites/</guid>
		<description><![CDATA[By: Noni Hernandez
Enterprise Architect
If you worked/have worked or plan on working within the DoD environment, security will be a subject that haunts your dreams. Not that security isn't prevalent in the private sector, but given the nature of our work security is a top priority if not the number one priority. That being said, I [...]]]></description>
			<content:encoded><![CDATA[<p>By: Noni Hernandez<br />
Enterprise Architect</p>
<p>If you worked/have worked or plan on working within the DoD environment, security will be a subject that haunts your dreams. Not that security isn't prevalent in the private sector, but given the nature of our work security is a top priority if not the number one priority. That being said, I have been working with the DoD's PKI for the past few years so I am fully aware of the scope and implications of providing a secure computing environment. Recently I was tasked with bringing all of our publicly available servers to a secure standard. This involved deploying a load balanced ISA 2006 array and protecting all of our services available through the NIPRNET or commercial internet. One of my projects was securing our SharePoint farm by only allowing access through our ISA array. Normally this would be a task completed in one's sleep, depending on the authentication model being utilized. However, being a DoD element brings on specific requirements that must be met to ensure the protection of our data. Enter the CAC, or Common Access Card, and the utilization of the DoD PKI to enforce a more secure environment.</p>
<p>Inherently, ISA 2006 has great support for the client certificate authentication model, but there are some constraints. The main one being ISA will only allow such a connection by querying your domain to authenticate an active member of your domain. This is perfectly fine, except for the notion of having a publicly available page with limited information, on an anonymous access model. This is where things begin to get tricky. As I stated earlier, one requirement handed down by the DoD is to secure all publicly available servers via CAC authentication. This means granting access to your public site to anyone with a valid CAC. If you are publishing your anonymous site and giving direct access to your farm, then deploying this scenario is rather simple, but you are leaving your server vulnerable to possible unauthorized access simply by giving direct access. So naturally we will need to publish this site through our ISA array to provide that layer of security. This is where I first ran into problems. If you are configuring an access rule in ISA then enabling client certificate authentication requires the user be an active member in your domain with their CAC registered to that account. If you choose to leave the certificate request on the web server and set the authentication request on the listener to 'No Authentication' and the authentication delegation to 'No delegation, but client may authenticate directly', you will most likely receive a 408/Request timed out error when attempting to access the page. I was stuck on this error message for weeks after attempting numerous combinations to make this work.</p>
<p>After many sleepless nights(and even worse, nightmares!) trying to create a solution to this problem, I finally came across the solution only after being requested to secure another server behind our array. So here is the method I developed to allow a user access to our anonymous SharePoint site, with the only stipulation being they have a valid CAC.</p>
<p><strong>Step 1.</strong></p>
<p>On your ISA array, instead of creating a SharePoing Site Publishing Rule or a Web Site Publishing Rule, select 'Non-Web Server Protocol Publishing Rule'. Give it a meaningful name so your admins will be able to easily identify what the rule is performing, I chose 'HQ Anonymous SharePoint Site[CAC Enabled]'. After you click next enter the IP either the individual server or the load balanced IP utilized to reach the site. After clicking next, you'll need to click new to create a modified version of the HTTPS/SSL protocol, I named it 'HTTPS[HQ Anon]' to again reflect its utilization. After clicking next you'll need to first create an Inbound TCP protocol using the Port Range 443 to 443. This is basically stripping down the methods used by ISA, i.e. compression, masking, to allow an SSL connection but still generating a proxy connection to our internal site to protect the data. After clicking OK, you'll need to do the same thing and create and Outbound connection with the same parameters, this will allow the client certificate request to be passed back to the end user for a successful handshake. After clicking OK and then Finish you should see your new protocol in the 'Selected Protocol' dropdown list. Click Next and select the network that will be listening for these requests, most likely 'External' and then click the Address button. Since I am using a load balanced array I already have a VIP ready to be utilized for this published site, so I choose 'Specified IP address..' and then select the IP I will be using to publish this site and then click Add so this rule is only answering requests sent to this specific IP. After you select the IP and click OK, click Finish to complete the creation of the rule.</p>
<p><strong>Step 2.</strong></p>
<p>After you have created the rule, double click the new rule to view the properties. Click on the 'To' tab and change the 'Request for the published server' setting to 'Requests appear to come from the ISA Server computer'. Once you have verified all the settings are correct from steps 1 and 2 then click 'Apply' and 'OK'. This should conclude the ISA configuration portion!</p>
<p><strong>Step 3.</strong></p>
<p>On your SharePoint farm, you'll need to open the IIS settings and then navigate to your anonymous site and view the properties. When you have the properties open, navigate to the Directory Security page and then click Edit on the Secure Communications section. Here you'll need to select 'Require secure channel', 'Require client certificates', and then 'Enable certificate trust list'. Click New to create a new Trust list, click Next and then click 'Add from File'. You'll need to select the DoD Root CA 2 and I have also set DoD CLASS 3 Root CA from where you have these certificates stored. Click next and then give it a name, i.e. DOD CTL, click next and then Finish. After clicking OK all the way through to the Directory Security page of the anonymous site properties, you are done!</p>
<p>So as you see, it's really not a complicated process. But in the grand scheme of things, we all know that we tend to over think and over complicate things to engineer solutions. I am more than guilty of this, I lost weeks of sleep to prove it! This configuration guide is set on a pretense that you do have some preliminary items configured, and that you reached the dead end at the same point I did. If did not being to lose your hair because of this, and have just begun your descent into madness, then you need to know that there are some steps that should be completed before reaching this stage.</p>
<p>--------------------</p>
<p>Thank you Noni for agreeing to write this post! I think everyone will agree this is a valuable contribution to the DoD - SharePoint community!
</p>
<p class="akst_link"><a href="http://www.sharepointsecurity.com/blog/?p=298&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_298" class="akst_share_link" rel="nofollow">Share This</a>
</p><!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Recommend This Post</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.sharepointsecurity.com/blog/sharepoint/cac-enabled-anonymous-sharepoint-sites/&amp;title=CAC+Enabled+Anonymous+Sharepoint+Sites" title="Add 'CAC Enabled Anonymous Sharepoint Sites' a Del.icio.us"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'CAC Enabled Anonymous Sharepoint Sites' a Del.icio.us" alt="Add 'CAC Enabled Anonymous Sharepoint Sites' a Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.sharepointsecurity.com/blog/sharepoint/cac-enabled-anonymous-sharepoint-sites/&amp;title=CAC+Enabled+Anonymous+Sharepoint+Sites" title="Add 'CAC Enabled Anonymous Sharepoint Sites' a digg"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'CAC Enabled Anonymous Sharepoint Sites' a digg" alt="Add 'CAC Enabled Anonymous Sharepoint Sites' a digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.sharepointsecurity.com/blog/sharepoint/cac-enabled-anonymous-sharepoint-sites/" title="Add 'CAC Enabled Anonymous Sharepoint Sites' a Technorati"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'CAC Enabled Anonymous Sharepoint Sites' a Technorati" alt="Add 'CAC Enabled Anonymous Sharepoint Sites' a Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://www.sharepointsecurity.com/blog/sharepoint/cac-enabled-anonymous-sharepoint-sites/" title="Add 'CAC Enabled Anonymous Sharepoint Sites' a Bloglines"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'CAC Enabled Anonymous Sharepoint Sites' a Bloglines" alt="Add 'CAC Enabled Anonymous Sharepoint Sites' a Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http://www.sharepointsecurity.com/blog/sharepoint/cac-enabled-anonymous-sharepoint-sites/&amp;T=CAC+Enabled+Anonymous+Sharepoint+Sites" title="Add 'CAC Enabled Anonymous Sharepoint Sites' a Netscape"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/netscape.gif" title="Add 'CAC Enabled Anonymous Sharepoint Sites' a Netscape" alt="Add 'CAC Enabled Anonymous Sharepoint Sites' a Netscape" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://www.sharepointsecurity.com/blog/sharepoint/cac-enabled-anonymous-sharepoint-sites/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Infragistics SharePoint Demo Is Funny, But Depressing</title>
		<link>http://www.sharepointsecurity.com/blog/sharepoint/the-infragistics-sharepoint-demo-is-funny-but-depressing/</link>
		<comments>http://www.sharepointsecurity.com/blog/sharepoint/the-infragistics-sharepoint-demo-is-funny-but-depressing/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 18:33:45 +0000</pubDate>
		<dc:creator>Adam Buenz</dc:creator>
		
		<category>SharePoint</category>

		<category>SharePoint 2007 Development</category>

		<guid isPermaLink="false">http://www.sharepointsecurity.com/blog/sharepoint/the-infragistics-sharepoint-demo-is-funny-but-depressing/</guid>
		<description><![CDATA[So, I recently got solicited for feedback and comment from Infragistics because I was for some time heavily into using their control set. Regardless of some of the unwieldy operations to sustain the nifty functions, I think they are neat and a lot of the times clients have a pre-existing license agreements so I just [...]]]></description>
			<content:encoded><![CDATA[<p>So, I recently got solicited for feedback and comment from Infragistics because I was for some time heavily into using their control set. Regardless of some of the unwieldy operations to sustain the nifty functions, I think they are neat and a lot of the times clients have a pre-existing license agreements so I just use 'em.</p>
<p>Infragistics appears to be making a tactical move into the SharePoint space; therefore curiosity arose in me to go test out what they had recently released. Regrettably, in conventional “let’s hurry up and provide a SharePoint solution” format which can be vendor criterion, Infragistics wins for the most cumbersome deployment process feasible. Well, maybe not that bad, but it’s pretty damn close.  The WORST part about this situation is the code behind for the solution is fantastic (not being sarcastic, it really is pretty good!), and it’s a bummer that they dropped the ball on everything BUT managed code development. Kudos to the developer on the code though.</p>
<p>So, here is the page of concern:<br />
<a href="http://www.infragistics.com/hot/sharepoint.aspx#SharePoint">http://www.infragistics.com/hot/sharepoint.aspx#SharePoint</a></p>
<p>And here is a link to the configuration guide:<br />
<a href="http://dl.infragistics.com/products/NetAdvantage/Silverlight/2008.1/ReferenceApplications/Pomegranate%20-%20Configuration%20Document.pdf">http://dl.infragistics.com/products/NetAdvantage/Silverlight/2008.1/ReferenceApplications/Pomegranate%20-%20Configuration%20Document.pdf</a></p>
<p>Alrighty, let’s get started. Once the PDF is open, scroll down to page 10.</p>
<p>1) Get to step one. WTF?!?! Cmon Infragistics, you want <strong>*manual*</strong> web.config modifications? LAME. That can take forever to complete on a staging farm, and is subject to substantial human error. I mean come on; the <strong>SPWebConfigModification</strong> class exists for a reason and there are all sorts of receivers.<br />
- Moving right along, reference point 1 for the custom configuration sections instances. Are people really supposed to copy and paste that shit?<br />
- Manual safe control entries. HA! I like that one. No note needed on that sweetness.<br />
- Manual CAS adjustments make me want to cry. Seriously, as someone that takes code security critically, I want to shove a pen in my eye to damn the tears up like a Bic beaver.<br />
- Again, the session state stuff? See above.<br />
- Could go on with the rest of em, but you get the point…<br />
2) Creating folders at the root of the site can be automated, that’s why we have <strong>SPWebApplication</strong>, etc. objects. You can even do your permission requirements as well.<br />
3) You want people to copy things into the 12 hive. Is there a point to that? I mean, it is breaking the fundamental principle of SharePoint Solution architecture. That's one of the reasons WE HAVE SOLUTIONS.<br />
4) Uploading a master page can be automated since the Master Page Gallery upload is the same as any document library. Sigh.<br />
5) As opposed to packing .webpart or .dwp files, you are asking people to new them up out of the gallery. The extent of that laziness is immeasurable in words.<br />
6) Well, I guess back to the 12 hive thing, again, manual Theme deployment. Word.<br />
7) After I saw SPD, I threw up a little bit in my mouth and stopped reading.</p>
<p>I am not bagging on the controls, but FFS, if you are going to build a sample solution, MAKE IT EASY AND QUICK TO DEPLOY. I don’t want to spend a fucking afternoon trying to get some pie charts and random data grids into a demo site.
</p>
<p class="akst_link"><a href="http://www.sharepointsecurity.com/blog/?p=297&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_297" class="akst_share_link" rel="nofollow">Share This</a>
</p><!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Recommend This Post</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.sharepointsecurity.com/blog/sharepoint/the-infragistics-sharepoint-demo-is-funny-but-depressing/&amp;title=The+Infragistics+SharePoint+Demo+Is+Funny%2C+But+Depressing" title="Add 'The Infragistics SharePoint Demo Is Funny, But Depressing' a Del.icio.us"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'The Infragistics SharePoint Demo Is Funny, But Depressing' a Del.icio.us" alt="Add 'The Infragistics SharePoint Demo Is Funny, But Depressing' a Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.sharepointsecurity.com/blog/sharepoint/the-infragistics-sharepoint-demo-is-funny-but-depressing/&amp;title=The+Infragistics+SharePoint+Demo+Is+Funny%2C+But+Depressing" title="Add 'The Infragistics SharePoint Demo Is Funny, But Depressing' a digg"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'The Infragistics SharePoint Demo Is Funny, But Depressing' a digg" alt="Add 'The Infragistics SharePoint Demo Is Funny, But Depressing' a digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.sharepointsecurity.com/blog/sharepoint/the-infragistics-sharepoint-demo-is-funny-but-depressing/" title="Add 'The Infragistics SharePoint Demo Is Funny, But Depressing' a Technorati"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'The Infragistics SharePoint Demo Is Funny, But Depressing' a Technorati" alt="Add 'The Infragistics SharePoint Demo Is Funny, But Depressing' a Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://www.sharepointsecurity.com/blog/sharepoint/the-infragistics-sharepoint-demo-is-funny-but-depressing/" title="Add 'The Infragistics SharePoint Demo Is Funny, But Depressing' a Bloglines"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'The Infragistics SharePoint Demo Is Funny, But Depressing' a Bloglines" alt="Add 'The Infragistics SharePoint Demo Is Funny, But Depressing' a Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http://www.sharepointsecurity.com/blog/sharepoint/the-infragistics-sharepoint-demo-is-funny-but-depressing/&amp;T=The+Infragistics+SharePoint+Demo+Is+Funny%2C+But+Depressing" title="Add 'The Infragistics SharePoint Demo Is Funny, But Depressing' a Netscape"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/netscape.gif" title="Add 'The Infragistics SharePoint Demo Is Funny, But Depressing' a Netscape" alt="Add 'The Infragistics SharePoint Demo Is Funny, But Depressing' a Netscape" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://www.sharepointsecurity.com/blog/sharepoint/the-infragistics-sharepoint-demo-is-funny-but-depressing/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Returning Site Directory SPList</title>
		<link>http://www.sharepointsecurity.com/blog/sharepoint/returning-site-directory-splist/</link>
		<comments>http://www.sharepointsecurity.com/blog/sharepoint/returning-site-directory-splist/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 19:42:59 +0000</pubDate>
		<dc:creator>Adam Buenz</dc:creator>
		
		<category>SharePoint</category>

		<category>SharePoint 2007 Development</category>

		<guid isPermaLink="false">http://www.sharepointsecurity.com/blog/sharepoint/returning-site-directory-splist/</guid>
		<description><![CDATA[Often times it is required to get a reference to the SPList that contains the site directory information, this is an important task when you are considering construction of navigation solutions or when building holistic reporting tools in order to support governance of site sprawl (which is easy to have happen, but sure is a [...]]]></description>
			<content:encoded><![CDATA[<p>Often times it is required to get a reference to the <span style="font-weight: bold">SPList</span> that contains the site directory information, this is an important task when you are considering construction of navigation solutions or when building holistic reporting tools in order to support governance of site sprawl (which is easy to have happen, but sure is a PITA to get cleaned up!). In order to do this, you will use the <span style="font-weight: bold">Microsoft.SharePoint.SPListTemplateType</span> enumeration to specify the type of a list definition or a list template, in this case the value <span style="font-weight: bold">300</span> leveraging a direct cast. For example, a simple method to hydrate the coordinating <span style="font-weight: bold">SPList</span> object can be done as such:</p>
<div class="igBar"><span id="lcsharp-10"><a href="#" onclick="javascript:showPlainTxt('csharp-10'); return false;">Select For Unformatted Code</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-10">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> SPList ReturnPortalSiteList<span style="color: #000000;">&#40;</span>SPWeb web<span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">return</span> web.<span style="color: #0000FF;">Lists</span>.<span style="color: #0000FF;">Cast</span>&lt;SPList&gt;<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">FirstOrDefault</span><span style="color: #000000;">&#40;</span>list =&gt; Equals<span style="color: #000000;">&#40;</span>list.<span style="color: #0000FF;">BaseTemplate</span>, <span style="color: #000000;">&#40;</span>SPListTemplateType<span style="color: #000000;">&#41;</span> <span style="color: #FF0000;color:#800000;">300</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Easy as pie! <img src='http://www.sharepointsecurity.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</p>
<p class="akst_link"><a href="http://www.sharepointsecurity.com/blog/?p=296&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_296" class="akst_share_link" rel="nofollow">Share This</a>
</p><!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Recommend This Post</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.sharepointsecurity.com/blog/sharepoint/returning-site-directory-splist/&amp;title=Returning+Site+Directory+SPList" title="Add 'Returning Site Directory SPList' a Del.icio.us"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Returning Site Directory SPList' a Del.icio.us" alt="Add 'Returning Site Directory SPList' a Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.sharepointsecurity.com/blog/sharepoint/returning-site-directory-splist/&amp;title=Returning+Site+Directory+SPList" title="Add 'Returning Site Directory SPList' a digg"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Returning Site Directory SPList' a digg" alt="Add 'Returning Site Directory SPList' a digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.sharepointsecurity.com/blog/sharepoint/returning-site-directory-splist/" title="Add 'Returning Site Directory SPList' a Technorati"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Returning Site Directory SPList' a Technorati" alt="Add 'Returning Site Directory SPList' a Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://www.sharepointsecurity.com/blog/sharepoint/returning-site-directory-splist/" title="Add 'Returning Site Directory SPList' a Bloglines"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'Returning Site Directory SPList' a Bloglines" alt="Add 'Returning Site Directory SPList' a Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http://www.sharepointsecurity.com/blog/sharepoint/returning-site-directory-splist/&amp;T=Returning+Site+Directory+SPList" title="Add 'Returning Site Directory SPList' a Netscape"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/netscape.gif" title="Add 'Returning Site Directory SPList' a Netscape" alt="Add 'Returning Site Directory SPList' a Netscape" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://www.sharepointsecurity.com/blog/sharepoint/returning-site-directory-splist/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Removing Role Definitions from a Role Assignment</title>
		<link>http://www.sharepointsecurity.com/blog/sharepoint/removing-role-definitions-from-a-role-assignment/</link>
		<comments>http://www.sharepointsecurity.com/blog/sharepoint/removing-role-definitions-from-a-role-assignment/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 14:31:13 +0000</pubDate>
		<dc:creator>Adam Buenz</dc:creator>
		
		<category>SharePoint</category>

		<category>SharePoint 2007 Development</category>

		<guid isPermaLink="false">http://www.sharepointsecurity.com/blog/sharepoint/removing-role-definitions-from-a-role-assignment/</guid>
		<description><![CDATA[Role assignments can be exposed ala ISecurableObject and pretty much everything, in order to support Securable Objects (for item level security,etc.), is an ISecurableObject in SharePoint 2007. So, to begin with, we are going to use ISecurableObject to get assignments in combination with a SPPrincipal (representing a user or group)  via the GetAssignmentByPrincipal method available [...]]]></description>
			<content:encoded><![CDATA[<p>Role assignments can be exposed ala <strong>ISecurableObject</strong> and pretty much everything, in order to support Securable Objects (for item level security,etc.), is an <strong>ISecurableObject</strong> in SharePoint 2007. So, to begin with, we are going to use<strong> ISecurableObject</strong> to get assignments in combination with a <strong>SPPrincipal</strong> (representing a user or group)  via the <strong>GetAssignmentByPrincipal </strong>method available off a <strong>RoleAssignments</strong> collection (it doesn't even require casting!).</p>
<div class="igBar"><span id="lcsharp-13"><a href="#" onclick="javascript:showPlainTxt('csharp-13'); return false;">Select For Unformatted Code</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-13">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">SPRoleAssignment assignment =  ISecurableObject.<span style="color: #0000FF;">RoleAssignments</span>.<span style="color: #0000FF;">GetAssignmentByPrincipal</span><span style="color: #000000;">&#40;</span>SPPrincipal<span style="color: #000000;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Following, a new <strong>SPRoleAssignment</strong> object is hydrated based on the <strong>SPPrincipal </strong>object, and that <strong>SPRoleAssignment</strong> object has a <strong>RoleDefinitionBindings</strong> collection that exposes the <strong>Remove</strong> method. Therefore, if you had an array or typed collection of <strong>SPRoleDefinitions</strong> you wanted to iterate, you could do something like (of course after testing whether the <strong>SPRoleAssignment</strong> object created is not null):</p>
<div class="igBar"><span id="lcsharp-14"><a href="#" onclick="javascript:showPlainTxt('csharp-14'); return false;">Select For Unformatted Code</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-14">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">foreach</span> <span style="color: #000000;">&#40;</span>SPRoleDefinition definition <span style="color: #0600FF;">in</span> List&lt;SPRoleDefinition&gt;<span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">assignment.<span style="color: #0000FF;">RoleDefinitionBindings</span>.<span style="color: #0000FF;">Remove</span><span style="color: #000000;">&#40;</span>definition<span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Gone! <img src='http://www.sharepointsecurity.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</p>
<p class="akst_link"><a href="http://www.sharepointsecurity.com/blog/?p=295&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_295" class="akst_share_link" rel="nofollow">Share This</a>
</p><!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Recommend This Post</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.sharepointsecurity.com/blog/sharepoint/removing-role-definitions-from-a-role-assignment/&amp;title=Removing+Role+Definitions+from+a+Role+Assignment" title="Add 'Removing Role Definitions from a Role Assignment' a Del.icio.us"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Removing Role Definitions from a Role Assignment' a Del.icio.us" alt="Add 'Removing Role Definitions from a Role Assignment' a Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.sharepointsecurity.com/blog/sharepoint/removing-role-definitions-from-a-role-assignment/&amp;title=Removing+Role+Definitions+from+a+Role+Assignment" title="Add 'Removing Role Definitions from a Role Assignment' a digg"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Removing Role Definitions from a Role Assignment' a digg" alt="Add 'Removing Role Definitions from a Role Assignment' a digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.sharepointsecurity.com/blog/sharepoint/removing-role-definitions-from-a-role-assignment/" title="Add 'Removing Role Definitions from a Role Assignment' a Technorati"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Removing Role Definitions from a Role Assignment' a Technorati" alt="Add 'Removing Role Definitions from a Role Assignment' a Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://www.sharepointsecurity.com/blog/sharepoint/removing-role-definitions-from-a-role-assignment/" title="Add 'Removing Role Definitions from a Role Assignment' a Bloglines"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'Removing Role Definitions from a Role Assignment' a Bloglines" alt="Add 'Removing Role Definitions from a Role Assignment' a Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http://www.sharepointsecurity.com/blog/sharepoint/removing-role-definitions-from-a-role-assignment/&amp;T=Removing+Role+Definitions+from+a+Role+Assignment" title="Add 'Removing Role Definitions from a Role Assignment' a Netscape"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/netscape.gif" title="Add 'Removing Role Definitions from a Role Assignment' a Netscape" alt="Add 'Removing Role Definitions from a Role Assignment' a Netscape" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://www.sharepointsecurity.com/blog/sharepoint/removing-role-definitions-from-a-role-assignment/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Presenting the Keynote And Breakout At TechFuse 2009</title>
		<link>http://www.sharepointsecurity.com/blog/sharepoint/presenting-the-keynote-and-breakout-at-techfuse-2009/</link>
		<comments>http://www.sharepointsecurity.com/blog/sharepoint/presenting-the-keynote-and-breakout-at-techfuse-2009/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 13:29:43 +0000</pubDate>
		<dc:creator>Adam Buenz</dc:creator>
		
		<category>SharePoint</category>

		<guid isPermaLink="false">http://www.sharepointsecurity.com/blog/sharepoint/presenting-the-keynote-and-breakout-at-techfuse-2009/</guid>
		<description><![CDATA[I will be presenting the keynote and a breakout session at Techfuse (NOT TechEd) on Tuesday, March 17, 2009 in Brooklyn Park, MN.
My keynote sessions synopsis is (taking into account I despise esoteric keynotes that are full of marketing, I choose a more pragmatic path   )
Title:
Building a Commissionable, Development Aware Virtualized SharePoint Environment
Summary:

Constructing [...]]]></description>
			<content:encoded><![CDATA[<p>I will be presenting the keynote and a breakout session at Techfuse (NOT TechEd) on Tuesday, March 17, 2009 in Brooklyn Park, MN.</p>
<p>My keynote sessions synopsis is (taking into account I despise esoteric keynotes that are full of marketing, I choose a more pragmatic path <img src='http://www.sharepointsecurity.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<p><strong>Title:</strong></p>
<p>Building a Commissionable, Development Aware Virtualized SharePoint Environment</p>
<p><strong>Summary:<br />
</strong></p>
<p>Constructing a commissionable collaboration environment that lessens friction for at-will server provisioning is commonly one of the most time-consuming tasks when designing a SharePoint environment targeting flexibility however controlling proliferation. There are certain components required from both a development and architectural perspective; operating systems, applications, service packs, and updates being a few examples. Reproducing these environments on a repetitive piece-meal basis can be attributed to one of the most inefficient processes in an organization, frustrating for both the operations and development departments.</p>
<p>There are several compelling reasons for an organization to virtualize a SharePoint environment. From a cost perspective the immediate benefit of a reduced hardware footprint coupled with lessened physical space requirements, arguably these are the most visible. Furthermore, management and maintenance of the virtualized SharePoint environment is eased, allowing service levels to increase since servers can be provisioned for everything from implementing redundancy to providing siloed testing environments for component testing.</p>
<p>Microsoft System Center Virtual Machine Manager (VMM) 2008 out of the System Center Server Management Suite provides a powerful virtualization scheme (utilizing hypervisor-based virtualization) allowing a commission and decommissioning architecture that, when coupled with SharePoint, provides redundant operations architecture and adaptable development environments to properly support an SDLC. As opposed to scaling tasks that normally takes weeks, VMM allows SharePoint architects to provide a robust solution set to tackle time consuming tasks in a fraction of the time.</p>
<p>The first portion of this session will demonstrate building virtualized SharePoint environment following down to the metal best practices. The preliminary design will be in accordance with simple small farm architecture. Scenario based implementations will follow to demonstrate the introduction of new servers into the environment, along with the benchmarks advised in order to govern the provisioning procedures. From an operations standpoint, this should equip the audience with enough information in order to start to build self-sustaining performance metrics and the associate required actions in order to maintain desirable operational service levels.</p>
<p>The second portion of this session will describe best practices approaches to provide organizational developers with an appropriate development environment that follows a prescribed lifecycle. While the operational component will heavily focus on roles, utilizations, and responses, the development end will focus on maintain a structured SharePoint development process. The preliminary design will demonstrate single instance virtualized development sandboxes, with integrated a conflict reduction architecture pushing to a centralized build machine (for build and testing before sending to QA) leveraging Team Foundation Server.  Using build events, a structured process will also be demonstrated in order to examine how to automate orthodox build pushes, tackling a majority of deployment scenarios. This should equip both the operations and development audience measures with an agreeable approach that eases both parties rhythmic daily tasks.</p>
<p>For my breakout session I will be presenting on SharePoint security froom both an architectural as well as development perspective.</p>
<p>You can find out more about TechFuse <a href="http://www.nhmn.com/techfuse.aspx">here</a>, and it will be hosted at The Northland Inn in Brooklyn Park:</p>
<p><iframe height="350" frameborder="0" width="425" scrolling="no" marginwidth="0" marginheight="0" src="http://maps.google.com/maps?f=q&#038;source=s_q&#038;hl=en&#038;geocode=&#038;q=northland+inn+brooklyn+park+MN&#038;sll=37.0625,-95.677068&#038;sspn=50.956929,114.257812&#038;ie=UTF8&#038;ll=45.087745,-93.375676&#038;spn=0.015214,0.046306&#038;output=embed&#038;s=AARTsJoJH6Td7Qf-l2wgrxldsPpNb4WJpg">&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;small&amp;amp;gt;&amp;amp;lt;a style="color: #0000ff; text-align: left"  xhref="http://maps.google.com/maps?f=q&amp;amp;amp;source=embed&amp;amp;amp;hl=en&amp;amp;amp;geocode=&amp;amp;amp;q=northland+inn+brooklyn+park+MN&amp;amp;amp;sll=37.0625,-95.677068&amp;amp;amp;sspn=50.956929,114.257812&amp;amp;amp;ie=UTF8&amp;amp;amp;ll=45.087745,-93.375676&amp;amp;amp;spn=0.015214,0.046306" mce_href="http://maps.google.com/maps?f=q&amp;amp;amp;source=embed&amp;amp;amp;hl=en&amp;amp;amp;geocode=&amp;amp;amp;q=northland+inn+brooklyn+park+MN&amp;amp;amp;sll=37.0625,-95.677068&amp;amp;amp;sspn=50.956929,114.257812&amp;amp;amp;ie=UTF8&amp;amp;amp;ll=45.087745,-93.375676&amp;amp;amp;spn=0.015214,0.046306"&amp;amp;gt;View Larger Map&amp;amp;lt;/a&amp;amp;gt;&amp;amp;lt;/small&amp;amp;gt;</iframe>
</p>
<p class="akst_link"><a href="http://www.sharepointsecurity.com/blog/?p=294&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_294" class="akst_share_link" rel="nofollow">Share This</a>
</p><!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Recommend This Post</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.sharepointsecurity.com/blog/sharepoint/presenting-the-keynote-and-breakout-at-techfuse-2009/&amp;title=Presenting+the+Keynote+And+Breakout+At+TechFuse+2009" title="Add 'Presenting the Keynote And Breakout At TechFuse 2009' a Del.icio.us"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Presenting the Keynote And Breakout At TechFuse 2009' a Del.icio.us" alt="Add 'Presenting the Keynote And Breakout At TechFuse 2009' a Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.sharepointsecurity.com/blog/sharepoint/presenting-the-keynote-and-breakout-at-techfuse-2009/&amp;title=Presenting+the+Keynote+And+Breakout+At+TechFuse+2009" title="Add 'Presenting the Keynote And Breakout At TechFuse 2009' a digg"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Presenting the Keynote And Breakout At TechFuse 2009' a digg" alt="Add 'Presenting the Keynote And Breakout At TechFuse 2009' a digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.sharepointsecurity.com/blog/sharepoint/presenting-the-keynote-and-breakout-at-techfuse-2009/" title="Add 'Presenting the Keynote And Breakout At TechFuse 2009' a Technorati"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Presenting the Keynote And Breakout At TechFuse 2009' a Technorati" alt="Add 'Presenting the Keynote And Breakout At TechFuse 2009' a Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://www.sharepointsecurity.com/blog/sharepoint/presenting-the-keynote-and-breakout-at-techfuse-2009/" title="Add 'Presenting the Keynote And Breakout At TechFuse 2009' a Bloglines"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'Presenting the Keynote And Breakout At TechFuse 2009' a Bloglines" alt="Add 'Presenting the Keynote And Breakout At TechFuse 2009' a Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http://www.sharepointsecurity.com/blog/sharepoint/presenting-the-keynote-and-breakout-at-techfuse-2009/&amp;T=Presenting+the+Keynote+And+Breakout+At+TechFuse+2009" title="Add 'Presenting the Keynote And Breakout At TechFuse 2009' a Netscape"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/netscape.gif" title="Add 'Presenting the Keynote And Breakout At TechFuse 2009' a Netscape" alt="Add 'Presenting the Keynote And Breakout At TechFuse 2009' a Netscape" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://www.sharepointsecurity.com/blog/sharepoint/presenting-the-keynote-and-breakout-at-techfuse-2009/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Presenting At BISIG On The 12th</title>
		<link>http://www.sharepointsecurity.com/blog/sharepoint/presenting-at-bisig-on-the-12th/</link>
		<comments>http://www.sharepointsecurity.com/blog/sharepoint/presenting-at-bisig-on-the-12th/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 14:57:12 +0000</pubDate>
		<dc:creator>Adam Buenz</dc:creator>
		
		<category>SharePoint</category>

		<guid isPermaLink="false">http://www.sharepointsecurity.com/blog/sharepoint/presenting-at-bisig-on-the-12th/</guid>
		<description><![CDATA[I will be presenting at the North Central District Business Intelligence SIG on March 12th, which is actually today so I am a little late in announcing it on the site. I will be presenting a SharePoint security session, so if you are around we will be at the Microsoft offices  at 8300 Norman Center [...]]]></description>
			<content:encoded><![CDATA[<p>I will be presenting at the North Central District Business Intelligence SIG on March 12th, which is actually today so I am a little late in announcing it on the site. I will be presenting a SharePoint security session, so if you are around we will be at the Microsoft offices  at 8300 Norman Center Drive, Suite 950, Bloomington, Minnesota, 55437 from 3:00 pm to 6:30 pm stop by.</p>
<p><iframe height="350" frameborder="0" width="425" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&#038;source=s_q&#038;hl=en&#038;geocode=&#038;q=8300+Norman+Center+Drive,+Suite+950,+Bloomington,+Minnesota,+55437&#038;sll=37.0625,-95.677068&#038;sspn=49.176833,114.257812&#038;ie=UTF8&#038;z=14&#038;iwloc=addr&#038;ll=44.861953,-93.348513&#038;output=embed&#038;s=AARTsJr7FFVUS2Md5wtIJRBYkLGFKK4DkQ">&lt;br /&gt;&lt;small&gt;&lt;a style="color: #0000ff; text-align: left" mce_href="http://maps.google.com/maps?f=q&amp;amp;source=embed&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=8300+Norman+Center+Drive,+Suite+950,+Bloomington,+Minnesota,+55437&amp;amp;sll=37.0625,-95.677068&amp;amp;sspn=49.176833,114.257812&amp;amp;ie=UTF8&amp;amp;z=14&amp;amp;iwloc=addr&amp;amp;ll=44.861953,-93.348513" xhref="http://maps.google.com/maps?f=q&amp;amp;source=embed&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=8300+Norman+Center+Drive,+Suite+950,+Bloomington,+Minnesota,+55437&amp;amp;sll=37.0625,-95.677068&amp;amp;sspn=49.176833,114.257812&amp;amp;ie=UTF8&amp;amp;z=14&amp;amp;iwloc=addr&amp;amp;ll=44.861953,-93.348513"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;  I will be up to speak first, so get their early! <img src='http://www.sharepointsecurity.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &lt;/p&gt;</iframe>
</p>
<p class="akst_link"><a href="http://www.sharepointsecurity.com/blog/?p=293&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_293" class="akst_share_link" rel="nofollow">Share This</a>
</p><!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Recommend This Post</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.sharepointsecurity.com/blog/sharepoint/presenting-at-bisig-on-the-12th/&amp;title=Presenting+At+BISIG+On+The+12th" title="Add 'Presenting At BISIG On The 12th' a Del.icio.us"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Presenting At BISIG On The 12th' a Del.icio.us" alt="Add 'Presenting At BISIG On The 12th' a Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.sharepointsecurity.com/blog/sharepoint/presenting-at-bisig-on-the-12th/&amp;title=Presenting+At+BISIG+On+The+12th" title="Add 'Presenting At BISIG On The 12th' a digg"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Presenting At BISIG On The 12th' a digg" alt="Add 'Presenting At BISIG On The 12th' a digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.sharepointsecurity.com/blog/sharepoint/presenting-at-bisig-on-the-12th/" title="Add 'Presenting At BISIG On The 12th' a Technorati"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Presenting At BISIG On The 12th' a Technorati" alt="Add 'Presenting At BISIG On The 12th' a Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://www.sharepointsecurity.com/blog/sharepoint/presenting-at-bisig-on-the-12th/" title="Add 'Presenting At BISIG On The 12th' a Bloglines"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'Presenting At BISIG On The 12th' a Bloglines" alt="Add 'Presenting At BISIG On The 12th' a Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http://www.sharepointsecurity.com/blog/sharepoint/presenting-at-bisig-on-the-12th/&amp;T=Presenting+At+BISIG+On+The+12th" title="Add 'Presenting At BISIG On The 12th' a Netscape"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/netscape.gif" title="Add 'Presenting At BISIG On The 12th' a Netscape" alt="Add 'Presenting At BISIG On The 12th' a Netscape" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://www.sharepointsecurity.com/blog/sharepoint/presenting-at-bisig-on-the-12th/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MembersipCreateStatus Switch/Case with Undefined Actions</title>
		<link>http://www.sharepointsecurity.com/blog/sharepoint/membersipcreatestatus-switchcase-with-undefined-actions/</link>
		<comments>http://www.sharepointsecurity.com/blog/sharepoint/membersipcreatestatus-switchcase-with-undefined-actions/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 22:09:33 +0000</pubDate>
		<dc:creator>Adam Buenz</dc:creator>
		
		<category>SharePoint</category>

		<category>SharePoint 2007 Development</category>

		<guid isPermaLink="false">http://www.sharepointsecurity.com/blog/sharepoint/membersipcreatestatus-switchcase-with-undefined-actions/</guid>
		<description><![CDATA[The code itself is pretty self explanatory and is very unamazing. Taking the values that are available from the System.Web.Security.MembershipCreateStatus enumeration that specifies the result of the CreateUser operation, here is a switch/case to go through all of them to save you some time when testing the result. Honestly, I just got tired of writing [...]]]></description>
			<content:encoded><![CDATA[<p>The code itself is pretty self explanatory and is very unamazing. Taking the values that are available from the <strong>System.Web.Security.MembershipCreateStatus</strong> enumeration that specifies the result of the <strong>CreateUser</strong> operation, here is a switch/case to go through all of them to save you some time when testing the result. Honestly, I just got tired of writing it and wanted a place where I could reference it <img src='http://www.sharepointsecurity.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  but it might save some people some time I suppose.</p>
<div class="igBar"><span id="lcsharp-16"><a href="#" onclick="javascript:showPlainTxt('csharp-16'); return false;">Select For Unformatted Code</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-16">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> GetStatusResult<span style="color: #000000;">&#40;</span>MembershipCreateStatus status<span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">switch</span> <span style="color: #000000;">&#40;</span>status<span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">case</span> MembershipCreateStatus.<span style="color: #0000FF;">DuplicateEmail</span>:</div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #008080; font-style: italic;">//</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">break</span>;</div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">case</span> MembershipCreateStatus.<span style="color: #0000FF;">DuplicateProviderUserKey</span>:</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #008080; font-style: italic;">//</span></div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">break</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">case</span> MembershipCreateStatus.<span style="color: #0000FF;">DuplicateUserName</span>:</div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #008080; font-style: italic;">//</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">break</span>;</div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">case</span> MembershipCreateStatus.<span style="color: #0000FF;">InvalidAnswer</span>:</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #008080; font-style: italic;">//</span></div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">break</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">case</span> MembershipCreateStatus.<span style="color: #0000FF;">InvalidEmail</span>:</div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #008080; font-style: italic;">//</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">break</span>;</div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">case</span> MembershipCreateStatus.<span style="color: #0000FF;">InvalidPassword</span>:</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #008080; font-style: italic;">//</span></div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">break</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">case</span> MembershipCreateStatus.<span style="color: #0000FF;">InvalidProviderUserKey</span>:</div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #008080; font-style: italic;">//</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">break</span>;</div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">case</span> MembershipCreateStatus.<span style="color: #0000FF;">InvalidQuestion</span>:</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #008080; font-style: italic;">//</span></div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">break</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">case</span> MembershipCreateStatus.<span style="color: #0000FF;">InvalidUserName</span>:</div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #008080; font-style: italic;">//</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">break</span>;</div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">case</span> MembershipCreateStatus.<span style="color: #0000FF;">ProviderError</span>:</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #008080; font-style: italic;">//</span></div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">break</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">case</span> MembershipCreateStatus.<span style="color: #0000FF;">Success</span>:</div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #008080; font-style: italic;">//</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">break</span>;</div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">case</span> MembershipCreateStatus.<span style="color: #0000FF;">UserRejected</span>:</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #008080; font-style: italic;">//</span></div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">break</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#368F02;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
</p>
<p class="akst_link"><a href="http://www.sharepointsecurity.com/blog/?p=292&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_292" class="akst_share_link" rel="nofollow">Share This</a>
</p><!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Recommend This Post</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.sharepointsecurity.com/blog/sharepoint/membersipcreatestatus-switchcase-with-undefined-actions/&amp;title=MembersipCreateStatus+Switch%2FCase+with+Undefined+Actions" title="Add 'MembersipCreateStatus Switch/Case with Undefined Actions' a Del.icio.us"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'MembersipCreateStatus Switch/Case with Undefined Actions' a Del.icio.us" alt="Add 'MembersipCreateStatus Switch/Case with Undefined Actions' a Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.sharepointsecurity.com/blog/sharepoint/membersipcreatestatus-switchcase-with-undefined-actions/&amp;title=MembersipCreateStatus+Switch%2FCase+with+Undefined+Actions" title="Add 'MembersipCreateStatus Switch/Case with Undefined Actions' a digg"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'MembersipCreateStatus Switch/Case with Undefined Actions' a digg" alt="Add 'MembersipCreateStatus Switch/Case with Undefined Actions' a digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.sharepointsecurity.com/blog/sharepoint/membersipcreatestatus-switchcase-with-undefined-actions/" title="Add 'MembersipCreateStatus Switch/Case with Undefined Actions' a Technorati"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'MembersipCreateStatus Switch/Case with Undefined Actions' a Technorati" alt="Add 'MembersipCreateStatus Switch/Case with Undefined Actions' a Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://www.sharepointsecurity.com/blog/sharepoint/membersipcreatestatus-switchcase-with-undefined-actions/" title="Add 'MembersipCreateStatus Switch/Case with Undefined Actions' a Bloglines"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'MembersipCreateStatus Switch/Case with Undefined Actions' a Bloglines" alt="Add 'MembersipCreateStatus Switch/Case with Undefined Actions' a Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http://www.sharepointsecurity.com/blog/sharepoint/membersipcreatestatus-switchcase-with-undefined-actions/&amp;T=MembersipCreateStatus+Switch%2FCase+with+Undefined+Actions" title="Add 'MembersipCreateStatus Switch/Case with Undefined Actions' a Netscape"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/netscape.gif" title="Add 'MembersipCreateStatus Switch/Case with Undefined Actions' a Netscape" alt="Add 'MembersipCreateStatus Switch/Case with Undefined Actions' a Netscape" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://www.sharepointsecurity.com/blog/sharepoint/membersipcreatestatus-switchcase-with-undefined-actions/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Fixing the Elusive “Value Cannot Be Null” FBA Authentication Error</title>
		<link>http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/fixing-the-elusive-%e2%80%9cvalue-cannot-be-null%e2%80%9d-fba-authentication-error/</link>
		<comments>http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/fixing-the-elusive-%e2%80%9cvalue-cannot-be-null%e2%80%9d-fba-authentication-error/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 16:30:15 +0000</pubDate>
		<dc:creator>Adam Buenz</dc:creator>
		
		<category>SharePoint 2007 Development</category>

		<category>SharePoint 2007 Architecture</category>

		<guid isPermaLink="false">http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/fixing-the-elusive-%e2%80%9cvalue-cannot-be-null%e2%80%9d-fba-authentication-error/</guid>
		<description><![CDATA[This error occurs promptly after a user logins via FBA (regardless of provider), and will materialize after indiscriminate time increments that are challenging to wrap with any empirical values. I looked all over the place to see if anyone else had hit this error, and while they had none had a repair in place. This [...]]]></description>
			<content:encoded><![CDATA[<p>This error occurs promptly after a user logins via FBA (regardless of provider), and will materialize after indiscriminate time increments that are challenging to wrap with any empirical values. I looked all over the place to see if anyone else had hit this error, and while they had none had a repair in place. This is what the error looks like:</p>
<p><img height="125" width="339" src="http://img9.imageshack.us/img9/189/errorvalnotnull.jpg" /></p>
<p><a href="http://img9.imageshack.us/img9/189/errorvalnotnull.jpg">(view larger image) </a></p>
<p>At first, I thought it was my login page that I use because I perform an assortment of executions post-authentication for external content requests (mostly auditing and user tracking). However, this wasn’t the case. I looked through all the pertinent web.config values, and everything looked in order. Looked through all the custom code since I saw some unreleased SPRequest objects (for shame Adam!) in the ULS logs, and at this point I was reaching (I had already disassembled the stack trace as much as possible, not much in there)…so I went and fixed all those. Still no effect.</p>
<p>Running out of ideas, I decided to go through any less commonly changed web.config values. Sure enough, I found that the batch compilation was explicitly disabled i.e. the debug attribute for the compilation element was set to true. This is actually pretty frequent in <strong>*development*</strong> environments because permits walking through SharePoint application page code calls (so that a reasonable debugging environment can be procured). However, in production this is bad. Realllllll bad. This is because when that is toggled in production every page requested builds a dynamic assembly (to support debugging) that get sprinkled all over the address space and fragment memory, causing bad exceptions, most notably out of memory ones.</p>
<p>I switched it back the debug attribute to false, and viola! Production is back to authentication goodness.
</p>
<p class="akst_link"><a href="http://www.sharepointsecurity.com/blog/?p=291&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_291" class="akst_share_link" rel="nofollow">Share This</a>
</p><!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Recommend This Post</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/fixing-the-elusive-%e2%80%9cvalue-cannot-be-null%e2%80%9d-fba-authentication-error/&amp;title=Fixing+the+Elusive+%E2%80%9CValue+Cannot+Be+Null%E2%80%9D+FBA+Authentication+Error" title="Add 'Fixing the Elusive “Value Cannot Be Null” FBA Authentication Error' a Del.icio.us"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Fixing the Elusive “Value Cannot Be Null” FBA Authentication Error' a Del.icio.us" alt="Add 'Fixing the Elusive “Value Cannot Be Null” FBA Authentication Error' a Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/fixing-the-elusive-%e2%80%9cvalue-cannot-be-null%e2%80%9d-fba-authentication-error/&amp;title=Fixing+the+Elusive+%E2%80%9CValue+Cannot+Be+Null%E2%80%9D+FBA+Authentication+Error" title="Add 'Fixing the Elusive “Value Cannot Be Null” FBA Authentication Error' a digg"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Fixing the Elusive “Value Cannot Be Null” FBA Authentication Error' a digg" alt="Add 'Fixing the Elusive “Value Cannot Be Null” FBA Authentication Error' a digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/fixing-the-elusive-%e2%80%9cvalue-cannot-be-null%e2%80%9d-fba-authentication-error/" title="Add 'Fixing the Elusive “Value Cannot Be Null” FBA Authentication Error' a Technorati"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Fixing the Elusive “Value Cannot Be Null” FBA Authentication Error' a Technorati" alt="Add 'Fixing the Elusive “Value Cannot Be Null” FBA Authentication Error' a Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/fixing-the-elusive-%e2%80%9cvalue-cannot-be-null%e2%80%9d-fba-authentication-error/" title="Add 'Fixing the Elusive “Value Cannot Be Null” FBA Authentication Error' a Bloglines"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'Fixing the Elusive “Value Cannot Be Null” FBA Authentication Error' a Bloglines" alt="Add 'Fixing the Elusive “Value Cannot Be Null” FBA Authentication Error' a Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/fixing-the-elusive-%e2%80%9cvalue-cannot-be-null%e2%80%9d-fba-authentication-error/&amp;T=Fixing+the+Elusive+%E2%80%9CValue+Cannot+Be+Null%E2%80%9D+FBA+Authentication+Error" title="Add 'Fixing the Elusive “Value Cannot Be Null” FBA Authentication Error' a Netscape"><img src="http://www.sharepointsecurity.com/blog/wp-content/plugins/social-bookmarking-reloaded/netscape.gif" title="Add 'Fixing the Elusive “Value Cannot Be Null” FBA Authentication Error' a Netscape" alt="Add 'Fixing the Elusive “Value Cannot Be Null” FBA Authentication Error' a Netscape" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/fixing-the-elusive-%e2%80%9cvalue-cannot-be-null%e2%80%9d-fba-authentication-error/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
