<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5496930043413737231</id><updated>2011-11-14T15:33:50.594+01:00</updated><category term='Development'/><category term='Snippet'/><category term='SMTP'/><category term='POP3'/><category term='Boundaries'/><category term='Powershell'/><category term='Sharepoint'/><category term='Debugging'/><category term='Cmdlet'/><category term='Windows Server 2008'/><category term='Reusable'/><category term='Error'/><category term='Security'/><category term='Commandlet'/><category term='AD'/><category term='Limitations'/><category term='Configuration'/><title type='text'>Jebas on Sharepoint development</title><subtitle type='html'>Jeroen Van Bastelaere on WSS and MOSS development</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jebass.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jebass.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jeroen Van Bastelaere</name><uri>http://www.blogger.com/profile/10381931341319956425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_EoyydXIisPI/SEkzHCcs7LI/AAAAAAAAACc/t5XGF9PEDpU/S220/CMJ2.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5496930043413737231.post-7914347279852862082</id><published>2011-11-14T15:30:00.002+01:00</published><updated>2011-11-14T15:33:50.643+01:00</updated><title type='text'>New blog location</title><content type='html'>I've recently moved my blogging activities to a new website: http://www.skavi.be because that is the consulting company I founded in september.&lt;br /&gt;&lt;br /&gt;Thanks! &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496930043413737231-7914347279852862082?l=jebass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.skavi.be' title='New blog location'/><link rel='replies' type='application/atom+xml' href='http://jebass.blogspot.com/feeds/7914347279852862082/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496930043413737231&amp;postID=7914347279852862082' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/7914347279852862082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/7914347279852862082'/><link rel='alternate' type='text/html' href='http://jebass.blogspot.com/2011/11/new-blog-location.html' title='New blog location'/><author><name>Jeroen Van Bastelaere</name><uri>http://www.blogger.com/profile/10381931341319956425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_EoyydXIisPI/SEkzHCcs7LI/AAAAAAAAACc/t5XGF9PEDpU/S220/CMJ2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496930043413737231.post-997119458419828774</id><published>2011-03-24T13:38:00.001+01:00</published><updated>2011-03-24T13:38:35.791+01:00</updated><title type='text'>Setting IP restrictions on your central administration server in IIS with PowerShell</title><content type='html'>&lt;p&gt;To set an IP restriction on your central administration with PowerShell you need to do the following:&lt;/p&gt;  &lt;p&gt;- First set deny all   &lt;br /&gt;Set-WebConfigrationProperty –Filter system.webServer/security/ipSecurity –PSPath ‘IIS:\’ –Name allowUnlisted –Location “SharePoint Central Administration v4” –Value $false&lt;/p&gt;  &lt;p&gt;- Second set allow for a specific IP Address   &lt;br /&gt;&lt;font size="2"&gt;Add-WebConfiguration system.webServer/security/ipSecurity –location “IIS:\Sites\SharePoint Central Administration v4” –Value @{ipAddress=”$(Get-IPAddress)”;allowed=”true”} –PSPath IIS:\&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;The Get-IPAddress function is a function to get the IP address of the current PC:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;f&lt;/font&gt;&lt;font size="2"&gt;unction Get-IPAddress() {&lt;/font&gt;&lt;/p&gt;  &lt;h1&gt;&lt;font size="2"&gt; return (gwmi Win32_NetworkAdapterConfiguration |? { $_.IPAddress –ne $null }).IPAddress&lt;/font&gt;&lt;/h1&gt;  &lt;p&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496930043413737231-997119458419828774?l=jebass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jebass.blogspot.com/feeds/997119458419828774/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496930043413737231&amp;postID=997119458419828774' title='1 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/997119458419828774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/997119458419828774'/><link rel='alternate' type='text/html' href='http://jebass.blogspot.com/2011/03/setting-ip-restrictions-on-your-central.html' title='Setting IP restrictions on your central administration server in IIS with PowerShell'/><author><name>Jeroen Van Bastelaere</name><uri>http://www.blogger.com/profile/10381931341319956425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_EoyydXIisPI/SEkzHCcs7LI/AAAAAAAAACc/t5XGF9PEDpU/S220/CMJ2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496930043413737231.post-1829533953046865051</id><published>2010-07-14T11:21:00.001+02:00</published><updated>2010-07-14T11:21:33.902+02:00</updated><title type='text'>SecurityException in WebParts when making SharePoint API calls</title><content type='html'>&lt;p&gt;Latest webpart I made I had strange problems with the following lines of code:&lt;/p&gt;  &lt;p&gt;SPWeb rootWeb = SPContext.Current.Site.RootWeb;&amp;#160; &lt;br /&gt;string siteInfoUnserialized = rootWeb.Properties[Constants.SOMEKEY]; // SecurityException here&lt;/p&gt;  &lt;p&gt;Even though I was logged in as System Administrator this exception got thrown. This error is very likely to happen due to a lack of a good nights rest, resulting in placing code in the constructor (I still can’t remember why I did that).&lt;/p&gt;  &lt;p&gt;Placing the API code inside the OnInit function (or similar) solves the problem. The cause is that during the constructor call not everything is initialized properly.&lt;/p&gt;  &lt;p&gt;Other possible causes (not applicable for me) are that the CAS file is not correct thus not having enough rights or the webpart dll is not in the GAC (if you do it this way, Microsoft recommends bin deployment with CAS policies) &lt;/p&gt;  &lt;p&gt;Reference to a deeper blogpost about this by Robert Bogue: &lt;a title="http://www.thorprojects.com/blog/archive/2008/04/16/web-part-event-firings-and-why-you-shouldn%E2%80%99t-have-code-in-the-constructor.aspx" href="http://www.thorprojects.com/blog/archive/2008/04/16/web-part-event-firings-and-why-you-shouldn%E2%80%99t-have-code-in-the-constructor.aspx"&gt;http://www.thorprojects.com/blog/archive/2008/04/16/web-part-event-firings-and-why-you-shouldn%E2%80%99t-have-code-in-the-constructor.aspx&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496930043413737231-1829533953046865051?l=jebass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jebass.blogspot.com/feeds/1829533953046865051/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496930043413737231&amp;postID=1829533953046865051' title='1 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/1829533953046865051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/1829533953046865051'/><link rel='alternate' type='text/html' href='http://jebass.blogspot.com/2010/07/securityexception-in-webparts-when.html' title='SecurityException in WebParts when making SharePoint API calls'/><author><name>Jeroen Van Bastelaere</name><uri>http://www.blogger.com/profile/10381931341319956425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_EoyydXIisPI/SEkzHCcs7LI/AAAAAAAAACc/t5XGF9PEDpU/S220/CMJ2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496930043413737231.post-2119843010011682750</id><published>2010-05-25T13:11:00.001+02:00</published><updated>2010-05-25T13:14:10.547+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Commandlet'/><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Cmdlet'/><category scheme='http://www.blogger.com/atom/ns#' term='Debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='Powershell'/><title type='text'>Debugging Powershell Cmdlets V2</title><content type='html'>&lt;p&gt;As I was trying to debug my custom powershell commandlets through visual studio I had the problem that it was not hitting the breakpoints automatically when running through F5.&lt;/p&gt;  &lt;p&gt;The trick is to create a powershell.exe.cfg in your PowerShell folder (C:\Windows\System32\WindowsPowerShell\v1.0):&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;      &lt;br /&gt;&amp;lt;configuration&amp;gt;       &lt;br /&gt;&amp;#160; &amp;lt;startup&lt;font color="#ff0000"&gt; useLegacyV2RuntimeActivationPolicy=&amp;quot;true&amp;quot;&lt;/font&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;supportedRuntime version=&amp;quot;v2.0.50727&amp;quot;/&amp;gt;       &lt;br /&gt;&amp;#160; &amp;lt;/startup&amp;gt;       &lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The other steps to follow are still quite the same as Bart De Smet has explained in his blogpost here: &lt;a title="http://bartdesmet.net/blogs/bart/archive/2008/02/03/easy-windows-powershell-cmdlet-development-and-debugging.aspx" href="http://bartdesmet.net/blogs/bart/archive/2008/02/03/easy-windows-powershell-cmdlet-development-and-debugging.aspx"&gt;http://bartdesmet.net/blogs/bart/archive/2008/02/03/easy-windows-powershell-cmdlet-development-and-debugging.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Some things I did differently are setting post build events like this:    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;@SET GACUTIL=&amp;quot;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\gacutil.exe&amp;quot;      &lt;br /&gt;@SET INSTALLUTIL=&amp;quot;C:\Windows\Microsoft.NET\Framework64\v2.0.50727\installutil.exe&amp;quot; &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;%GACUTIL% -if Shaks.PowerShell.SharePoint.Cmdlets      &lt;br /&gt;%INSTALLUTIL% -i Shaks.PowerShell.SharePoint.Cmdlets.dll&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;In the Debug-tab of the project properties I start an external program (powershell.exe) with the following attributes:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;-PSConsoleFile Shaks.PowerShell.SharePoint.Cmdlets.psc1&amp;#160; -noexit&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I’ll post my psc1 file here for reference, although you can just generate this:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;      &lt;br /&gt;&amp;lt;PSConsoleFile ConsoleSchemaVersion=&amp;quot;1.0&amp;quot;&amp;gt;       &lt;br /&gt;&amp;#160; &amp;lt;PSVersion&amp;gt;2.0&amp;lt;/PSVersion&amp;gt;       &lt;br /&gt;&amp;#160; &amp;lt;PSSnapIns&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;PSSnapIn Name=&amp;quot;shaks.powershell.sharepoint.cmdlets&amp;quot; /&amp;gt;       &lt;br /&gt;&amp;#160; &amp;lt;/PSSnapIns&amp;gt;       &lt;br /&gt;&amp;lt;/PSConsoleFile&amp;gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The commandlet itself will be for a next blogpost.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496930043413737231-2119843010011682750?l=jebass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jebass.blogspot.com/feeds/2119843010011682750/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496930043413737231&amp;postID=2119843010011682750' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/2119843010011682750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/2119843010011682750'/><link rel='alternate' type='text/html' href='http://jebass.blogspot.com/2010/05/debugging-powershell-cmdlets-v2.html' title='Debugging Powershell Cmdlets V2'/><author><name>Jeroen Van Bastelaere</name><uri>http://www.blogger.com/profile/10381931341319956425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_EoyydXIisPI/SEkzHCcs7LI/AAAAAAAAACc/t5XGF9PEDpU/S220/CMJ2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496930043413737231.post-1747191595195906452</id><published>2009-02-11T12:17:00.001+01:00</published><updated>2009-02-11T12:17:59.394+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='SMTP'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='POP3'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server 2008'/><title type='text'>Making POP3 &amp; SMTP Server work with windows server 2008</title><content type='html'>&lt;p&gt;Not so long ago we switched our sharepoint development environments from windows server 2003 to windows server 2008. Everything is working very smooth until we need to start sending and receiving e-mail.&lt;/p&gt;  &lt;p&gt;*Shock* No more POP3 available OOTB in 2008. Microsoft has stopped shipping this product with the 2008 version, so the POP service has only been around for one version of windows server. The reason I believe was that it is not necessary for server environments as there are better options available for processing mail etc.&lt;/p&gt;  &lt;p&gt;Now a POP3 server is something I need to be able to keep my VPC lightweight (no exchange needed), but still be able to test mail sending (like alerts) locally. Lucky for us the Hannes Preishuber has made an extension for windows server 2008 that makes this possible for us.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/hpreishuber/archive/2008/04/30/visendo-smtp-pop3-extender-for-windows-2008-server.aspx"&gt;http://weblogs.asp.net/hpreishuber/archive/2008/04/30/visendo-smtp-pop3-extender-for-windows-2008-server.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now how do Install this? There is a small installation procedure available at that blogpost, but for me – being not so experienced in that area – it took a while to get up and running decently.    &lt;br /&gt;I will write down the steps I took to get it working here:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;A) Installing the SMTP feature that is available (optionally) in win2k8 server&lt;/h4&gt;  &lt;ol&gt;   &lt;li&gt;Open up your “Server Manager” and go to “Features”      &lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_EoyydXIisPI/SZKzgh1oMgI/AAAAAAAAAFI/J_F-r2f1Wes/s1600-h/image%5B2%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="197" alt="image" src="http://lh3.ggpht.com/_EoyydXIisPI/SZKzhNjcAII/AAAAAAAAAFM/CLWOgD1jox0/image_thumb.png?imgmax=800" width="200" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Click on “Add Features”      &lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_EoyydXIisPI/SZKzhywHmsI/AAAAAAAAAFQ/DHg-CAEXhWw/s1600-h/image%5B5%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="28" alt="image" src="http://lh4.ggpht.com/_EoyydXIisPI/SZKziR_4rRI/AAAAAAAAAFU/F5C_M7aWXvM/image_thumb%5B1%5D.png?imgmax=800" width="111" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Select “SMTP Feature” (Already installed in my next screenshot)      &lt;br /&gt;&lt;a href="http://lh3.ggpht.com/_EoyydXIisPI/SZKzijm6CRI/AAAAAAAAAFY/HfkaFLVDMi0/s1600-h/image%5B8%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="21" alt="image" src="http://lh5.ggpht.com/_EoyydXIisPI/SZKzjWwpLBI/AAAAAAAAAFc/73NHP5DuPgc/image_thumb%5B2%5D.png?imgmax=800" width="147" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Click install and follow the steps (this might take a while) &lt;/li&gt;    &lt;li&gt;To manage your SMTP Server you can go to IIS &lt;strong&gt;6.0 &lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Make sure it is started      &lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_EoyydXIisPI/SZKzkOiN12I/AAAAAAAAAFg/UYn9Vx0vKAQ/s1600-h/image%5B19%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="135" alt="image" src="http://lh6.ggpht.com/_EoyydXIisPI/SZKzk970iMI/AAAAAAAAAFk/KVFNkOzkvRU/image_thumb%5B7%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;If you encounter problems later like “Unable to relay” you can fix this by going to IIS6.0&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Go to the properties of your SMTP Virtual Server      &lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_EoyydXIisPI/SZKzlogYElI/AAAAAAAAAFo/mBh6jMSMgJo/s1600-h/image%5B22%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="image" src="http://lh6.ggpht.com/_EoyydXIisPI/SZKzmgCZjbI/AAAAAAAAAFs/2AOPSCqGAyw/image_thumb%5B8%5D.png?imgmax=800" width="218" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Go to Access &amp;gt; Relay…      &lt;br /&gt;&lt;a href="http://lh3.ggpht.com/_EoyydXIisPI/SZKznWcXsuI/AAAAAAAAAFw/zcN_ZYfU70M/s1600-h/image%5B25%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="image" src="http://lh5.ggpht.com/_EoyydXIisPI/SZKzoRSBYwI/AAAAAAAAAF0/VEyUhLpnfog/image_thumb%5B9%5D.png?imgmax=800" width="220" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Select “All except the list below”      &lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_EoyydXIisPI/SZKzo7gaP_I/AAAAAAAAAF4/gw52ZQBlWDk/s1600-h/image%5B28%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="238" alt="image" src="http://lh6.ggpht.com/_EoyydXIisPI/SZKzpseByNI/AAAAAAAAAF8/cFuWm83tQVo/image_thumb%5B10%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;B) Installing the POP3 Extender from Visendo&lt;/h4&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Install the installer found here: &lt;a href="http://weblogs.asp.net/hpreishuber/archive/2008/04/30/visendo-smtp-pop3-extender-for-windows-2008-server.aspx"&gt;http://weblogs.asp.net/hpreishuber/archive/2008/04/30/visendo-smtp-pop3-extender-for-windows-2008-server.aspx&lt;/a&gt;       &lt;br /&gt;- note: next steps are copied from the blogpost above, I’ll just add some comments between the lines &lt;/li&gt;    &lt;li&gt;Move &amp;quot;visendosmtpextender_sample.config&amp;quot; from &amp;quot;C:\Program Files\ppedv\visendosmtpextender&amp;quot; to &amp;quot;C:\Documents and Settings\All Users\Application Data\ppedv\visendosmtpextender&amp;quot;      &lt;br /&gt;&lt;font color="#008000"&gt;- To easily get to this path just copy it and paste it in Start &amp;gt; Run. Otherwise if you go looking for c:\documents and settings (or just type this in) you might get an Access Denied error&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;Rename to &amp;quot;visendosmtpextender_sample.config&amp;quot; to &amp;quot;visendosmtpextender.config&amp;quot; &lt;/li&gt;    &lt;li&gt;Edit &amp;quot;visendosmtpextender.config&amp;quot;      &lt;br /&gt;&lt;font color="#008040"&gt;- To give you an idea, my config looks like this:        &lt;br /&gt;&lt;/font&gt;&lt;a href="http://lh3.ggpht.com/_EoyydXIisPI/SZKzqiNGzgI/AAAAAAAAAGA/E8vTRW1ncOA/s1600-h/image%5B12%5D.png"&gt;&lt;font color="#008040"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="94" alt="image" src="http://lh6.ggpht.com/_EoyydXIisPI/SZKzrbveG5I/AAAAAAAAAGE/R3SBIAdbaTw/image_thumb%5B4%5D.png?imgmax=800" width="985" border="0" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;font color="#008040"&gt;&amp;#160; &lt;br /&gt;This will create a mailbox for &lt;/font&gt;&lt;a href="mailto:administrator@moss.localhost"&gt;&lt;font color="#008040"&gt;administrator@moss.localhost&lt;/font&gt;&lt;/a&gt;&lt;font color="#008040"&gt;, adjust to your own needs&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;Start service &amp;quot;Visendo SMTP Extender Service 2008&amp;quot;      &lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_EoyydXIisPI/SZKzszX_PGI/AAAAAAAAAGI/p-eCl8BkW-8/s1600-h/image%5B16%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="26" alt="image" src="http://lh5.ggpht.com/_EoyydXIisPI/SZKzu4PnnqI/AAAAAAAAAGM/6rF2MB3b2Mw/image_thumb%5B6%5D.png?imgmax=800" width="541" border="0" /&gt;&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h4&gt;C) Configuring outlook&lt;/h4&gt;  &lt;ol&gt;   &lt;li&gt;Go to Tools &amp;gt; Account Settings      &lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_EoyydXIisPI/SZKzvvLdi1I/AAAAAAAAAGQ/y8Jy6cvogoQ/s1600-h/image%5B35%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="image" src="http://lh5.ggpht.com/_EoyydXIisPI/SZKzwhLMdPI/AAAAAAAAAGU/18Tv1tsapHc/image_thumb%5B13%5D.png?imgmax=800" width="186" border="0" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Create a new account      &lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_EoyydXIisPI/SZKzxPCeCdI/AAAAAAAAAGY/nafmcPOPNm8/s1600-h/image%5B38%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="163" alt="image" src="http://lh5.ggpht.com/_EoyydXIisPI/SZKzyLdOJHI/AAAAAAAAAGc/NFGngMKYSLY/image_thumb%5B14%5D.png?imgmax=800" width="166" border="0" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Select manually configure server settings or additional server types &amp;gt; Next &amp;gt; Internet E-mail &amp;gt; Next      &lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_EoyydXIisPI/SZKzz-VDmaI/AAAAAAAAAGg/d2pn8UOvvAg/s1600-h/image%5B41%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="21" alt="image" src="http://lh3.ggpht.com/_EoyydXIisPI/SZKz0-Old-I/AAAAAAAAAGk/ar4a9FULlVU/image_thumb%5B15%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Fill in the following settings      &lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_EoyydXIisPI/SZKz1uZNpdI/AAAAAAAAAGo/QAVpvRnspKg/s1600-h/image%5B44%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="image" src="http://lh5.ggpht.com/_EoyydXIisPI/SZKz2uTAUII/AAAAAAAAAGs/S9WmhA53Om8/image_thumb%5B16%5D.png?imgmax=800" width="236" border="0" /&gt;&lt;/a&gt;       &lt;br /&gt;- Note: I have set my IP to 192.168.1.1 because that’s the way I set it in my VPC       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Test your settings by clicking “Test Settings”      &lt;br /&gt;&lt;a href="http://lh3.ggpht.com/_EoyydXIisPI/SZKz3Aggq_I/AAAAAAAAAGw/xl8wkdqY5Qw/s1600-h/image%5B47%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="120" alt="image" src="http://lh4.ggpht.com/_EoyydXIisPI/SZKz3_A-M5I/AAAAAAAAAG0/ln_g-kjO_rs/image_thumb%5B17%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;Everything should complete correctly &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Possible issues:&lt;/h4&gt;  &lt;p&gt;- Your mails are staying put in c:/inetpub/mailroot/queue    &lt;br /&gt;&lt;strong&gt;Solution: &lt;/strong&gt;Define aliases for your hostnames in IIS6.0 SMTP Virtual Server like this:     &lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_EoyydXIisPI/SZKz4m1oNkI/AAAAAAAAAG4/alY3WlIca8M/s1600-h/image%5B32%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="148" alt="image" src="http://lh4.ggpht.com/_EoyydXIisPI/SZKz5TRMXiI/AAAAAAAAAG8/pJ7c_INRyP4/image_thumb%5B12%5D.png?imgmax=800" width="290" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;I hope this helps someone. Leave a message if I missed something or if you think something could be done better.    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Have a nice day,&lt;/p&gt;  &lt;p&gt;Jeroen&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496930043413737231-1747191595195906452?l=jebass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jebass.blogspot.com/feeds/1747191595195906452/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496930043413737231&amp;postID=1747191595195906452' title='3 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/1747191595195906452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/1747191595195906452'/><link rel='alternate' type='text/html' href='http://jebass.blogspot.com/2009/02/making-pop3-smtp-server-work-with.html' title='Making POP3 &amp;amp; SMTP Server work with windows server 2008'/><author><name>Jeroen Van Bastelaere</name><uri>http://www.blogger.com/profile/10381931341319956425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_EoyydXIisPI/SEkzHCcs7LI/AAAAAAAAACc/t5XGF9PEDpU/S220/CMJ2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_EoyydXIisPI/SZKzhNjcAII/AAAAAAAAAFM/CLWOgD1jox0/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496930043413737231.post-7383176233630100318</id><published>2008-11-17T10:18:00.002+01:00</published><updated>2008-11-17T10:35:26.397+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Error'/><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='Configuration'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><title type='text'>Access denied while activating publishing features</title><content type='html'>Not so long ago I encountered a strange error on a sharepoint configuration: a site collection administrator was getting "Access Denied" errors while trying to activate the publishing site collection features.&lt;br /&gt;As his account had nearly every security right available in that company (way too much) this error was very strange to get.&lt;br /&gt;After some research I tried switching the application pool account of the portal to that of the central administration and apparantly this did the trick.&lt;br /&gt;&lt;br /&gt;So the access denied was not received from the actual users account, but from the account the user was elevated to: the identity of the application pool (found in ISS &gt; Application Pools &gt; Your Pool &gt; Properties &gt; Identity).&lt;br /&gt;My guess is that this account did not have enough access to the content databases to perform this action.&lt;br /&gt;&lt;br /&gt;Note: This sharepoint configuration was installed by the book of the Microsoft configuration and I've heard other reports of configuration problems when doing this.&lt;br /&gt;I'm no configuration expert so I don't know what right exactly was missing or where in this guide it is going wrong.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496930043413737231-7383176233630100318?l=jebass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jebass.blogspot.com/feeds/7383176233630100318/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496930043413737231&amp;postID=7383176233630100318' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/7383176233630100318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/7383176233630100318'/><link rel='alternate' type='text/html' href='http://jebass.blogspot.com/2008/11/access-denied-while-activating.html' title='Access denied while activating publishing features'/><author><name>Jeroen Van Bastelaere</name><uri>http://www.blogger.com/profile/10381931341319956425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_EoyydXIisPI/SEkzHCcs7LI/AAAAAAAAACc/t5XGF9PEDpU/S220/CMJ2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496930043413737231.post-554929281351976510</id><published>2008-11-06T22:08:00.002+01:00</published><updated>2008-11-13T18:12:29.674+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Snippet'/><title type='text'>Using a centrally manageable custom masterpage</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;p&gt;The standard microsoft way of deploying a custom masterpage is by making a custom provisioning feature that deploys your masterpage and all of its assets to the _catalogs/masterpages folder of your site collection.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Imagine if at the moment of deployment there is no certainty on how the masterpage will be in a certain amount of time and it is bound to change.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Are you going to manually deactivate and reactivate all these features or should there be another way?&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Today I'm going to show you another way to centrally manage your masterpage so you only have to adjust it on one place.. you guessed it right: the layouts folder!&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;If you try to change one of the 4 masterpage tokens ( ~masterurl/default.master ; ~masterurl/custom.master ; ~site/custom.master ; ~sitecollection/custom.master) to a masterpage located in your layouts directory you get an error (the referenced file is not allowed on this page) telling you that this is an unsupported attribute.&lt;br /&gt;Now how will we solve this issue? We will create a httpModule that will replace the masterpageurl in the pre-init event of the loaded page.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Step 1: &lt;/strong&gt;&lt;br /&gt;Copy your masterpage in your layouts folder (12/Template/Layouts/MyProject) &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Step 2: &lt;/strong&gt;&lt;br /&gt;Create MasterPageModule.cs&lt;br /&gt;&amp;gt; Let this class inherit from System.Web.IHttpModule&lt;br /&gt;&amp;gt; Implement the Init() and Dispose() &lt;/p&gt;&lt;pre class="c-sharp" name="code"&gt;&lt;br /&gt;public class MasterPageModule : IHttpModule&lt;br /&gt;    {&lt;br /&gt;        public void Init(HttpApplication context)&lt;br /&gt;        {&lt;br /&gt;            context.PreRequestHandlerExecute += new EventHandler(context_PreRequestHandlerExecute);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        void context_PreRequestHandlerExecute(object sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            Page page = HttpContext.Current.CurrentHandler as Page;&lt;br /&gt;            if (page != null)&lt;br /&gt;                page.PreInit += new EventHandler(page_PreInit);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        void page_PreInit(object sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            Page page = sender as Page;&lt;br /&gt;            if (SPContext.Current.Web.WebTemplateId == 10001)&lt;br /&gt;                if (page != null)&lt;br /&gt;                    if(page.MasterPageFile != null &amp;amp;&amp;amp; page.MasterPageFile.ToLower().Contains("application.master"))&lt;br /&gt;                        page.MasterPageFile = "/_layouts/CustomMasterPages/customApplication.master";&lt;br /&gt;                    else&lt;br /&gt;                    page.MasterPageFile = "/_layouts/CustomMasterPages/custom.master";&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public void Dispose()&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;As you can see I use the PreInit event of the Page to change my masterpage to either the application masterpage or either the normal masterpage. I do this because the application masterpage needs to have 2 more contentplaceholders than in the regular default.master. For more information on this, take a look at Toms blog (references at the bottom of this post)&lt;br /&gt;So what happens when we load a page: The page goes through its cycle and enters the PreInit fase, where this code kicks in and changes the masterpage accordingly.&lt;br /&gt;&lt;br /&gt;Note 1: It isn't officially supported to change your default application.master&lt;br /&gt;Note 2: It is possible that your Page already implements the PreInit. If this happens this code won't be run. F.e.: Most (if not all) publishing pages use the PreInit to change the masterpage to that of the currentWebs selected masterpage.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 3: &lt;/strong&gt;&lt;br /&gt;Strong name your dll, build it and put it in your global assembly cache (GAC)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 4: &lt;/strong&gt;&lt;br /&gt;Register your HttpModule in the web.config&lt;br /&gt;Open your web.config and place the following line just before the &amp;lt;/httpModules&amp;gt;:&lt;br /&gt;&amp;lt;add name="MyModule" type="MyNameSpace.MasterPageModule, ##### Fully qualified name #####" /&amp;gt;&lt;br /&gt;To find your fully qualified name I would recommend using Red Gate's Reflector, I put the link to it in a previous post.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 5:&lt;/strong&gt;&lt;br /&gt;Enjoy.. that's all! Since we changed the web.config, doing an iisreset (or recycling the application pools) is not needed anymore. Whenever a change to the web.config is saved IIS does this automatically for you.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt;&lt;br /&gt;If you have pages made with the publishing contenttypes chances are very high that there will be an OnPreInit event already firing on the Page itself, thus overriding your own modules onpreinit.. be wary of this!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Some references on masterpages: &lt;/strong&gt;&lt;br /&gt;- &lt;a href="http://jopx.blogspot.com/2007/09/ten-things-you-should-know-about.html"&gt;http://jopx.blogspot.com/2007/09/ten-things-you-should-know-about.html&lt;/a&gt;&lt;br /&gt;This is a good reference on masterpages in sharepoint in general, very recommended&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://tomblog.insomniacminds.com/2007/10/29/sharepoint-branding-issues-application-pages/"&gt;http://tomblog.insomniacminds.com/2007/10/29/sharepoint-branding-issues-application-pages/&lt;/a&gt;&lt;br /&gt;A good reference on how to customize application masterpages&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://support.microsoft.com/kb/307996"&gt;http://support.microsoft.com/kb/307996&lt;/a&gt;&lt;br /&gt;How to make a httpModule &lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496930043413737231-554929281351976510?l=jebass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jebass.blogspot.com/feeds/554929281351976510/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496930043413737231&amp;postID=554929281351976510' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/554929281351976510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/554929281351976510'/><link rel='alternate' type='text/html' href='http://jebass.blogspot.com/2008/11/using-centrally-managable-custom.html' title='Using a centrally manageable custom masterpage'/><author><name>Jeroen Van Bastelaere</name><uri>http://www.blogger.com/profile/10381931341319956425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_EoyydXIisPI/SEkzHCcs7LI/AAAAAAAAACc/t5XGF9PEDpU/S220/CMJ2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496930043413737231.post-7661897989370350494</id><published>2008-11-03T22:16:00.001+01:00</published><updated>2008-11-03T22:16:33.109+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Reusable'/><title type='text'>Handy sharepoint development tools</title><content type='html'>There are a few sharepoint development tools that I like very much.   &lt;br /&gt;  &lt;br /&gt;I will list them here:   &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.codeplex.com/wspbuilder" target="_blank"&gt;WSPBuilder Extensions&lt;/a&gt; (Visual studio addin)       &lt;br /&gt;This tool allows me to deploy, upgrade and test my solutions faster. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.red-gate.com/products/reflector/" target="_blank"&gt;Reflector&lt;/a&gt; (Red gate, previously Lutz Roeder)       &lt;br /&gt;This tool allows me to reverse engineer dll's, especially handy for getting the fully qualified name of your dll's and also for reverse engineering sharepoint dll's to see how they do it. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.codeplex.com/spm" target="_blank"&gt;Sharepoint manager 2007&lt;/a&gt;       &lt;br /&gt;Handy tool to inspect properties / fields / folders through a winforms application. It's definintly easier than writing your own console applications ;-). I use this a lot for checking propertybags of which I am a huge fan. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=e59c3964-672d-4511-bb3e-2d5e1db91038&amp;amp;displaylang=en" target="_blank"&gt;IE Developer toolbar&lt;/a&gt;       &lt;br /&gt;Addin to inspect your sites HTML and CSS. Used mainly for branding and updating masterpages / pagelayouts. Note: this is already embedded within IE 8 beta&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.fiddlertool.com/fiddler/" target="_blank"&gt;Fiddlder&lt;/a&gt;       &lt;br /&gt;Creates a proxy so you can see all the traffic sent. This enables you to find some bottlenecks like f.e. slow webservice &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Have a nice evening!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496930043413737231-7661897989370350494?l=jebass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jebass.blogspot.com/feeds/7661897989370350494/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496930043413737231&amp;postID=7661897989370350494' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/7661897989370350494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/7661897989370350494'/><link rel='alternate' type='text/html' href='http://jebass.blogspot.com/2008/11/handy-sharepoint-development-tools.html' title='Handy sharepoint development tools'/><author><name>Jeroen Van Bastelaere</name><uri>http://www.blogger.com/profile/10381931341319956425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_EoyydXIisPI/SEkzHCcs7LI/AAAAAAAAACc/t5XGF9PEDpU/S220/CMJ2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496930043413737231.post-3140691351682885311</id><published>2008-11-03T21:01:00.001+01:00</published><updated>2008-11-03T21:59:28.127+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Snippet'/><category scheme='http://www.blogger.com/atom/ns#' term='Reusable'/><title type='text'>How to read an SPUser field</title><content type='html'>&lt;p&gt;Ok... it's been a while since I last posted, but to make it up I have prepared a few posts for the coming time. Ranging from making dependant caching mechanisms in sharepoint to creating custom httpHandlers to host your masterpages centrally.    &lt;br /&gt;But first.. a post that I have created in june *blush*, but still didn't post. &lt;/p&gt;   &lt;p&gt;It's just a little snippet I like, but always have to write again. So I'm going to save it here on my blog so I never have to do it again... at least until I finally create an own framework ;-).&lt;/p&gt;   &lt;pre class="c-sharp" name="code"&gt;public static SPUser GetSPUser(SPListItem item, string key)  {&lt;br /&gt;SPFieldUser field = item.Fields[key] as SPFieldUser; &lt;br /&gt;if( field != null)  { &lt;br /&gt;	SPFieldUserValue fieldValue = field.GetFieldValue(item[key].ToString()) as SPFieldUserValue; &lt;br /&gt;if(fieldValue != null) &lt;br /&gt;	return fieldValue.User; &lt;br /&gt;return null;  &lt;br /&gt;}&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496930043413737231-3140691351682885311?l=jebass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jebass.blogspot.com/feeds/3140691351682885311/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496930043413737231&amp;postID=3140691351682885311' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/3140691351682885311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/3140691351682885311'/><link rel='alternate' type='text/html' href='http://jebass.blogspot.com/2008/11/how-to-read-spuser-field.html' title='How to read an SPUser field'/><author><name>Jeroen Van Bastelaere</name><uri>http://www.blogger.com/profile/10381931341319956425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_EoyydXIisPI/SEkzHCcs7LI/AAAAAAAAACc/t5XGF9PEDpU/S220/CMJ2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496930043413737231.post-6234787604392189290</id><published>2008-06-16T20:50:00.000+02:00</published><updated>2008-06-16T20:52:01.562+02:00</updated><title type='text'>Persisting dynamic controls through postbacks (part 2 of 2)</title><content type='html'>&lt;h4&gt;Second way: Adding it through the ID's of the controls&lt;/h4&gt;  &lt;p&gt;This way is a lot easier than the first way of doing it. It's a way that I've learnt from a colleague of mine (Koen Roos - His blog can be found here: &lt;a title="http://knrs.blogspot.com/" href="http://knrs.blogspot.com/"&gt;http://knrs.blogspot.com/&lt;/a&gt; ).&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;This method is based on the ID's of the controls.    &lt;br /&gt;When you add your controls to the page, you have to save the ID of the control into the viewstate instead of the serialized control itself.&amp;#160; &lt;br /&gt;During postback we read out the ID's of the objects and re-add new controls, but with the same ID's as the old controls.     &lt;br /&gt;ASP.NET remembers the properties of these controls et voila.. the controls are persisted.    &lt;br /&gt;This is especially useful for f.e. fileinputs, where you can't set the selected file property by code for security reasons.&lt;/p&gt;  &lt;h5&gt;Step 1: Add a new Label to the page&lt;/h5&gt; &lt;a href="http://lh3.ggpht.com/jeroen.van.bastelaere/SFa2RzmhGLI/AAAAAAAAADo/tswJY0iZ4Tc/image7.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="229" alt="image" src="http://lh6.ggpht.com/jeroen.van.bastelaere/SFa2SruZ8XI/AAAAAAAAADs/4CFQ8hoy0Yc/image_thumb3.png" width="448" border="0" /&gt;&lt;/a&gt;   &lt;h5&gt;Step 2: Re-add these labels during postbacks in the OnLoad event&lt;/h5&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/jeroen.van.bastelaere/SFa2TevFUaI/AAAAAAAAADw/cCwi9_Wrj-Q/image11.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="112" alt="image" src="http://lh4.ggpht.com/jeroen.van.bastelaere/SFa2UPlhFBI/AAAAAAAAAD0/Bya-yvgVkxI/image_thumb5.png" width="450" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Done! :)    &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496930043413737231-6234787604392189290?l=jebass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jebass.blogspot.com/feeds/6234787604392189290/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496930043413737231&amp;postID=6234787604392189290' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/6234787604392189290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/6234787604392189290'/><link rel='alternate' type='text/html' href='http://jebass.blogspot.com/2008/06/persisting-dynamic-controls-through_16.html' title='Persisting dynamic controls through postbacks (part 2 of 2)'/><author><name>Jeroen Van Bastelaere</name><uri>http://www.blogger.com/profile/10381931341319956425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_EoyydXIisPI/SEkzHCcs7LI/AAAAAAAAACc/t5XGF9PEDpU/S220/CMJ2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/jeroen.van.bastelaere/SFa2SruZ8XI/AAAAAAAAADs/4CFQ8hoy0Yc/s72-c/image_thumb3.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496930043413737231.post-15196261964740769</id><published>2008-06-15T22:10:00.000+02:00</published><updated>2008-06-15T22:11:42.532+02:00</updated><title type='text'>Persisting dynamic controls through postbacks (part 1 of 2)</title><content type='html'>&lt;p&gt;   &lt;br /&gt;Most people will have had this problem already: you add a controls dynamically to your page, for example by a button with in its onclick event handler this code:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt; &lt;a href="http://lh6.ggpht.com/jeroen.van.bastelaere/SFV3Q9LZ-RI/AAAAAAAAADI/RcMTqZSgzys/image5.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="53" alt="image" src="http://lh3.ggpht.com/jeroen.van.bastelaere/SFV3SVbMJ9I/AAAAAAAAADM/yMwguyzLhwI/image_thumb1.png" width="244" border="0" /&gt;&lt;/a&gt;   &lt;p&gt;&lt;/p&gt;  &lt;p&gt;When you try to execute this once it indeed adds your new label, but if you execute it multiple times you notice it doesn't add more than one label.&lt;/p&gt;  &lt;p&gt;This is due to the fact that the control isn't rebuilt during the subsequent postbacks. So how do we solve this?&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Todays article consists of two ways to keep your dynamically added controls through postbacks.    &lt;br /&gt;&lt;/p&gt;  &lt;h4&gt;The first way - Adding the controls to the viewstate&lt;/h4&gt;  &lt;p&gt;The first way is to add your controls to the viewstate when you add them to the controls collection of the page, and extracting them back out of the viewstate during the OnLoad event of the page.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The problem with this approach is that the default WebControls shipped with ASP.NET are not marked as serializable, so it is not that straightforward to just add them to the viewstate. This is why we have to make a new version of the webcontrol we use and make it serializable ourselves.    &lt;br /&gt;&lt;/p&gt;  &lt;h5&gt;Making a serializable Label &lt;/h5&gt;  &lt;p&gt;Note: this can be done to other WebControls aswell&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;To do this we make a new class named SerializableLabel that inherits from the Label class, implements ISerializable and is marked as Serializable by placing the [Serializable] attribute to the class.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt; &lt;a href="http://lh6.ggpht.com/jeroen.van.bastelaere/SFV3TIywYWI/AAAAAAAAADQ/3Bl6EL4fvbw/image10.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="153" alt="image" src="http://lh5.ggpht.com/jeroen.van.bastelaere/SFV3WGRDPXI/AAAAAAAAADU/Ojmm352xRJc/image_thumb4.png" width="431" border="0" /&gt;&lt;/a&gt;   &lt;p&gt;&lt;/p&gt;  &lt;p&gt;In this class we create serialization function, where we place our text attribute into the SerializationInfo class. This way we are able to read it out later on in the deserialization contructor in exactly the same way.    &lt;br /&gt;&lt;/p&gt;  &lt;h5&gt;Adding the serializable Label to the viewstate&lt;/h5&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Next we'll make our button to add a this label to the controls collection.    &lt;br /&gt;What happens here is:&lt;/p&gt;  &lt;p&gt;- We get our list of serializable labels out of the viewstate    &lt;br /&gt;- We make a new serializable label and add it to this list and the controls of this page     &lt;br /&gt;- We save the updated list back into the viewstate of our page&lt;/p&gt;  &lt;p&gt;&lt;/p&gt; &lt;a href="http://lh3.ggpht.com/jeroen.van.bastelaere/SFV3X4F6CqI/AAAAAAAAADY/seesSV_TbQw/image18.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="209" alt="image" src="http://lh3.ggpht.com/jeroen.van.bastelaere/SFV3Yyga-bI/AAAAAAAAADc/8LXmieWs7JQ/image_thumb10.png" width="431" border="0" /&gt;&lt;/a&gt;   &lt;p&gt;   &lt;br /&gt;Next when we load our page back in again we need to get all the controls that we dynamically created previously and add it back to the page.     &lt;br /&gt;&lt;/p&gt; &lt;a href="http://lh3.ggpht.com/jeroen.van.bastelaere/SFV3dZfIBFI/AAAAAAAAADg/4MfllunTpZM/image23.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="119" alt="image" src="http://lh3.ggpht.com/jeroen.van.bastelaere/SFV3ebEUcZI/AAAAAAAAADk/3RLnRylbUlo/image_thumb13.png" width="433" border="0" /&gt;&lt;/a&gt;   &lt;p&gt;This way every time a postback occurs the previously added labels are also re-added to the page.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496930043413737231-15196261964740769?l=jebass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jebass.blogspot.com/feeds/15196261964740769/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496930043413737231&amp;postID=15196261964740769' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/15196261964740769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/15196261964740769'/><link rel='alternate' type='text/html' href='http://jebass.blogspot.com/2008/06/persisting-dynamic-controls-through.html' title='Persisting dynamic controls through postbacks (part 1 of 2)'/><author><name>Jeroen Van Bastelaere</name><uri>http://www.blogger.com/profile/10381931341319956425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_EoyydXIisPI/SEkzHCcs7LI/AAAAAAAAACc/t5XGF9PEDpU/S220/CMJ2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/jeroen.van.bastelaere/SFV3SVbMJ9I/AAAAAAAAADM/yMwguyzLhwI/s72-c/image_thumb1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496930043413737231.post-7551572695923011459</id><published>2008-06-12T09:48:00.001+02:00</published><updated>2008-06-12T09:48:00.461+02:00</updated><title type='text'>OpenXML Format SDK released</title><content type='html'>&lt;p&gt;Microsoft just released the OpenXML Format SDK, this should make it easier to program for it.&lt;/p&gt;  &lt;p&gt;   &lt;p&gt;The Open XML Format SDK is built on top of the &lt;b&gt;System.IO.Packaging&lt;/b&gt; API and provides strongly typed part classes to manipulate Open XML documents.&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;To download: &lt;a title="http://www.microsoft.com/downloads/details.aspx?familyid=8D46C01F-E3F6-4069-869D-90B8B096B556&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?familyid=8D46C01F-E3F6-4069-869D-90B8B096B556&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=8D46C01F-E3F6-4069-869D-90B8B096B556&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;     &lt;p&gt;For an example what you can do with it: &lt;a title="http://www.textglow.net/" href="http://www.textglow.net/"&gt;http://www.textglow.net/&lt;/a&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496930043413737231-7551572695923011459?l=jebass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jebass.blogspot.com/feeds/7551572695923011459/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496930043413737231&amp;postID=7551572695923011459' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/7551572695923011459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/7551572695923011459'/><link rel='alternate' type='text/html' href='http://jebass.blogspot.com/2008/06/openxml-format-sdk-released.html' title='OpenXML Format SDK released'/><author><name>Jeroen Van Bastelaere</name><uri>http://www.blogger.com/profile/10381931341319956425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_EoyydXIisPI/SEkzHCcs7LI/AAAAAAAAACc/t5XGF9PEDpU/S220/CMJ2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496930043413737231.post-8226539687028046920</id><published>2008-06-07T20:03:00.003+02:00</published><updated>2008-06-07T20:27:03.816+02:00</updated><title type='text'>Silverlight 2.0 Beta 2 released</title><content type='html'>&lt;p&gt;Silverlight 2.0 Beta 2 is released today, you can find the new installation files here: &lt;a href="http://silverlight.net/GetStarted/"&gt;http://silverlight.net/GetStarted/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;The improvements that caught my eye are:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;More built-in controls (no more separate assemblies for commonly used components, greatly decreasing loading time and size&lt;/li&gt;&lt;li&gt;Various improvements to the textbox: (snippet from ScottGu's blog)"Text scrolling with text-wrap, multi-line text selection, document navigation keys, and copy/paste from the clipboard are now supported.Beta2 also now includes IME Level 3 input support (including candidate window selection) for non-western character sets"&lt;/li&gt;&lt;li&gt;UI Automation and Accessibility:This allows screen readers to read SL2.0 apps, by the time of the final release of silverlight they promise to let every control be interpretable by screenreaders.There will also be support for high contrast scenarios.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Various media improvements: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Adaptive streaming: allows SL to adapt itself to the conditions of the end user. It is able to reduce the bitrate for slower connections and slower CPU's. &lt;/li&gt;&lt;li&gt;DRM (digital rights management) protection support.  &lt;/li&gt;&lt;li&gt;Server side playlists&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Enhanced networking support:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cross domain sockets&lt;/li&gt;&lt;li&gt;Background thread sockets: Makes it so that the UI doesn't freeze while doing network transactions&lt;/li&gt;&lt;li&gt;Improved support for SOAP web services&lt;/li&gt;&lt;li&gt;Support for ADO.NET Web services (.NET 3.5 SP1, formerly known as Astoria)&lt;/li&gt;&lt;li&gt;JSON services support&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;For a more complete list go visit ScottGu's blog (&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/06/06/silverlight-2-beta2-released.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2008/06/06/silverlight-2-beta2-released.aspx&lt;/a&gt;) or ofcourse silverlight.net&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;Have a nice weekend,&lt;/p&gt;&lt;p&gt;Jeroen&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496930043413737231-8226539687028046920?l=jebass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jebass.blogspot.com/feeds/8226539687028046920/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496930043413737231&amp;postID=8226539687028046920' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/8226539687028046920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/8226539687028046920'/><link rel='alternate' type='text/html' href='http://jebass.blogspot.com/2008/06/silverlight-20-beta-2-released.html' title='Silverlight 2.0 Beta 2 released'/><author><name>Jeroen Van Bastelaere</name><uri>http://www.blogger.com/profile/10381931341319956425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_EoyydXIisPI/SEkzHCcs7LI/AAAAAAAAACc/t5XGF9PEDpU/S220/CMJ2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496930043413737231.post-6293818539900351910</id><published>2008-06-06T17:40:00.005+02:00</published><updated>2008-06-06T17:47:58.507+02:00</updated><title type='text'>Adding a multi person select field to your fields.xml</title><content type='html'>While I was googling to add a multi person field to a feature I noticed quite a lot of problems of getting them to actually use multiple persons.&lt;br /&gt;The solution to this is to set the attribute &lt;strong&gt;mult&lt;/strong&gt; to true like this:&lt;br /&gt;&lt;br /&gt;&lt; Field &lt;br /&gt;&lt;strong&gt;Type="UserMulti"&lt;/strong&gt; &lt;br /&gt;DisplayName="The display name"&lt;br /&gt;Description="Your description"&lt;br /&gt;Group="Custom Columns"&lt;br /&gt;ID="{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}" &lt;br /&gt;List="UserInfo"  &lt;br /&gt;MaxLength="255" &lt;br /&gt;Name="NotificatieAan" &lt;br /&gt;Required="FALSE" &lt;br /&gt;RowOrdinal="0" &lt;br /&gt;&lt;strong&gt;Mult="TRUE"&lt;/strong&gt;&lt;br /&gt;ShowField="ImnName" &lt;br /&gt;SourceID="&lt;a href="http://schemas.microsoft.com/sharepoint/v3"&gt;http://schemas.microsoft.com/sharepoint/v3&lt;/a&gt;" &lt;br /&gt;StaticName="InternallyUsedName" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496930043413737231-6293818539900351910?l=jebass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jebass.blogspot.com/feeds/6293818539900351910/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496930043413737231&amp;postID=6293818539900351910' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/6293818539900351910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/6293818539900351910'/><link rel='alternate' type='text/html' href='http://jebass.blogspot.com/2008/06/adding-multi-person-select-field-to.html' title='Adding a multi person select field to your fields.xml'/><author><name>Jeroen Van Bastelaere</name><uri>http://www.blogger.com/profile/10381931341319956425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_EoyydXIisPI/SEkzHCcs7LI/AAAAAAAAACc/t5XGF9PEDpU/S220/CMJ2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496930043413737231.post-957564903698879978</id><published>2008-06-06T14:42:00.003+02:00</published><updated>2008-06-06T14:54:42.749+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Boundaries'/><category scheme='http://www.blogger.com/atom/ns#' term='Limitations'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><title type='text'>Planning for sharepoint boundaries</title><content type='html'>I just wanted to point out a great article on the limitations of sharepoint found on technet:&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc262787.aspx"&gt;http://technet.microsoft.com/en-us/library/cc262787.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks to Bart for pointing this out for me (&lt;a href="http://bartvandenheede.blogspot.com/"&gt;http://bartvandenheede.blogspot.com/&lt;/a&gt;)!&lt;br /&gt;&lt;br /&gt;One note I would like to add to to the limitation of 2000 SPPrincipals (meaning either SPUser or SPGroups) per SPWeb. It isn't per sé wrong what they are stating there, but it should be 2000 principals per site collection.&lt;br /&gt;The explanation for this is that each principle you add to a subweb automatically adds the principle to the rootweb, but with limited access.&lt;br /&gt;This is to ensure that the principle has access to the subsite, but not to the sites above it.&lt;br /&gt;&lt;br /&gt;If every site adds their principles automatically to the rootsite, the limit on the rootsite will quickly reach its limit of 2000.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Have a nice day,&lt;br /&gt;&lt;br /&gt;Jeroen&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496930043413737231-957564903698879978?l=jebass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jebass.blogspot.com/feeds/957564903698879978/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496930043413737231&amp;postID=957564903698879978' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/957564903698879978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/957564903698879978'/><link rel='alternate' type='text/html' href='http://jebass.blogspot.com/2008/06/planning-for-sharepoint-boundaries.html' title='Planning for sharepoint boundaries'/><author><name>Jeroen Van Bastelaere</name><uri>http://www.blogger.com/profile/10381931341319956425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_EoyydXIisPI/SEkzHCcs7LI/AAAAAAAAACc/t5XGF9PEDpU/S220/CMJ2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496930043413737231.post-8515992957940721869</id><published>2008-06-05T08:01:00.000+02:00</published><updated>2008-06-06T14:53:59.262+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AD'/><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><title type='text'>Problems assigning AD groups to sharepoint sites</title><content type='html'>While doing a project this week we got a really bizar issue that users couldn't acces their sites anymore.&lt;br /&gt;The situation was as followed:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;User &lt;strong&gt;user1&lt;/strong&gt; was in group &lt;strong&gt;group1&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Web &lt;strong&gt;web1&lt;/strong&gt; had unique security (not inherited from its parent) and &lt;strong&gt;group1 &lt;/strong&gt;had Read rights to that web&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;There was one problem though: every night there was as batch job that recreated all the AD groups for our company, instead of updating it.&lt;br /&gt;This resulted in the groups still being added on the web, but the internal SID they referred to did not exist anymore.. thus blocking all the users from their sites.&lt;/p&gt;&lt;p&gt;Possible solutions:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Update the AD groups instead of deleting and recreating it prevents the problems from ever occuring&lt;/li&gt;&lt;li&gt;Update your security on the sharepoint webs through a timerjob after the AD creation batch has complete (not recommended!)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496930043413737231-8515992957940721869?l=jebass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jebass.blogspot.com/feeds/8515992957940721869/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496930043413737231&amp;postID=8515992957940721869' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/8515992957940721869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496930043413737231/posts/default/8515992957940721869'/><link rel='alternate' type='text/html' href='http://jebass.blogspot.com/2007/11/problems-assigning-ad-groups-to.html' title='Problems assigning AD groups to sharepoint sites'/><author><name>Jeroen Van Bastelaere</name><uri>http://www.blogger.com/profile/10381931341319956425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_EoyydXIisPI/SEkzHCcs7LI/AAAAAAAAACc/t5XGF9PEDpU/S220/CMJ2.jpg'/></author><thr:total>0</thr:total></entry></feed>
