<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>A SharePoint Consultant&#039;s Blog : Think Parallel</title>
	<atom:link href="http://thinkparallel.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://thinkparallel.wordpress.com</link>
	<description>Xploring unXplore! - Syed Raheel Ali</description>
	<lastBuildDate>Sat, 23 Oct 2010 20:21:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='thinkparallel.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>A SharePoint Consultant&#039;s Blog : Think Parallel</title>
		<link>http://thinkparallel.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://thinkparallel.wordpress.com/osd.xml" title="A SharePoint Consultant&#039;s Blog : Think Parallel" />
	<atom:link rel='hub' href='http://thinkparallel.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Launch for new Interface of GCAA website : http://www.gcaa.gov.ae</title>
		<link>http://thinkparallel.wordpress.com/2010/10/23/launch-for-new-interface-for-gcaa-website-httpwww-gcaa-gov-ae/</link>
		<comments>http://thinkparallel.wordpress.com/2010/10/23/launch-for-new-interface-for-gcaa-website-httpwww-gcaa-gov-ae/#comments</comments>
		<pubDate>Sat, 23 Oct 2010 20:18:41 +0000</pubDate>
		<dc:creator>thinkparallel</dc:creator>
				<category><![CDATA[General Blogs]]></category>

		<guid isPermaLink="false">http://thinkparallel.wordpress.com/?p=64</guid>
		<description><![CDATA[At last many sleepless nights and late sittings in office or office&#8217;s VPN, today we launched the new interface for General Civil Aviation Authority New Web Interface @ http://www.gcaa.gov.ae All credits goes to the IT Team especially members as myself, Faraz Khan, Aijaz &#38; Ameer .. Roles as below: Aijaz as Graphics Designs Ameer helping [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thinkparallel.wordpress.com&amp;blog=7043861&amp;post=64&amp;subd=thinkparallel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>At last many sleepless nights and late sittings in office or office&#8217;s VPN, today we launched the new interface for General Civil Aviation Authority New Web Interface @ http://www.gcaa.gov.ae</p>
<p>All credits goes to the IT Team especially members as myself, Faraz Khan, Aijaz &amp; Ameer ..</p>
<p>Roles as below:</p>
<ul>
<li>Aijaz as Graphics Designs</li>
<li>Ameer helping in HTML &amp; compatibility for all web browsers.</li>
</ul>
<p>Core Development:</p>
<ul>
<li>Muhammad Faraz Khan &amp; Syed Raheel Ali.</li>
</ul>
<p>InshAllah tomorrow morning will be the Official Launch.</p>
<p>Good luck guys. I am tired and really need to sleep <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thinkparallel.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thinkparallel.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thinkparallel.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thinkparallel.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thinkparallel.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thinkparallel.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thinkparallel.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thinkparallel.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thinkparallel.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thinkparallel.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thinkparallel.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thinkparallel.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thinkparallel.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thinkparallel.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thinkparallel.wordpress.com&amp;blog=7043861&amp;post=64&amp;subd=thinkparallel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thinkparallel.wordpress.com/2010/10/23/launch-for-new-interface-for-gcaa-website-httpwww-gcaa-gov-ae/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd5b5bec85911dee908c921bd7c9ea3a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">thinkparallel</media:title>
		</media:content>
	</item>
		<item>
		<title>GCAA IT Team Awarded for the 3rd Best E-Content 2009</title>
		<link>http://thinkparallel.wordpress.com/2010/03/03/gcaa-it-team-awarded-for-the-3rd-best-e-content-2009/</link>
		<comments>http://thinkparallel.wordpress.com/2010/03/03/gcaa-it-team-awarded-for-the-3rd-best-e-content-2009/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 22:29:32 +0000</pubDate>
		<dc:creator>thinkparallel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://thinkparallel.wordpress.com/2010/03/03/gcaa-it-team-awarded-for-the-3rd-best-e-content-2009/</guid>
		<description><![CDATA[ GCAA IT Team Awarded for the 3rd Best E-Content    Category : GCAA,   Date : Feb, 11 2010     11 February 2010   Abu Dhabi, UAE: The Information Technology (IT) section of the General Civil Aviation Authority of the UAE (GCAA) was felicitated in a ceremony to acknowledge the efforts of the IT [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thinkparallel.wordpress.com&amp;blog=7043861&amp;post=63&amp;subd=thinkparallel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p> GCAA IT Team Awarded for the 3rd Best E-Content</p>
<td> </td>
<p> <strong>Category :</strong> GCAA,   <strong>Date :</strong> Feb, 11 2010</p>
<td valign="top"> </td>
<p> </p>
<table border="0" cellspacing="0" cellpadding="8" width="100%">
<tbody>
<tr>
<td width="100%" valign="top">
<div>
<div><strong>11 February 2010</strong></div>
<div> </div>
<div>Abu Dhabi, UAE: The Information Technology (IT) section of the General Civil Aviation Authority of the UAE (GCAA) was felicitated in a ceremony to acknowledge the efforts of the IT team that leaded to the GCAA being awarded as the 3rd ‘Best e-Content Website in the Gulf Region’.</div>
<div> </div>
<div><strong>Saif Mohammed Al Suwaidi, the Director General of GCAA</strong> awarded all IT team members with certificates and  token of Appreciation. The Award ceremony was held in the presence of Mr. Waleed Hashim, Director of Finance and Administration and Mrs. Ayesha Al Zaabi, Manager of Human Resources.</div>
<div> </div>
<div><strong>Al Suwaidi</strong> expressed his appreciation for the efforts of the IT team and encouraged them to aim even higher for the next year.</div>
<div>Mohammed Al Shehhi, IT Manager of the GCAA said: “We are extremely grateful, as a team, to have received this honour and recognition for the efforts the GCAA has initiated to enhance customer support through the internet. It is both a sense of National and Organisational pride to have won an award that promotes higher standards of service excellence across the GCC.”</div>
<div> </div>
<div>He also thanked the Director General and Management of the Authority for their continuous support and encouragement, and assured improvement and full dedication on behalf of the IT Team.</div>
<div> </div>
<div><strong>Al Shehhi added:</strong> “The development of better IT support systems and advancements in the field of technology are key factors in positioning an organisation as leaders in quality and customer care. The creation of such an award ceremony encourages all government and service sectors across the GCC to enhance existing IT structures and services to surpass existing world class standards.”</div>
</div>
</td>
</tr>
</tbody>
</table>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thinkparallel.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thinkparallel.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thinkparallel.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thinkparallel.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thinkparallel.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thinkparallel.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thinkparallel.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thinkparallel.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thinkparallel.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thinkparallel.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thinkparallel.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thinkparallel.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thinkparallel.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thinkparallel.wordpress.com/63/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thinkparallel.wordpress.com&amp;blog=7043861&amp;post=63&amp;subd=thinkparallel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thinkparallel.wordpress.com/2010/03/03/gcaa-it-team-awarded-for-the-3rd-best-e-content-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd5b5bec85911dee908c921bd7c9ea3a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">thinkparallel</media:title>
		</media:content>
	</item>
		<item>
		<title>GCAA Announces Launch of ‘Reporting Of Safety Incident’ (ROSI) Program</title>
		<link>http://thinkparallel.wordpress.com/2010/03/03/gcaa-announces-launch-of-%e2%80%98reporting-of-safety-incident%e2%80%99-rosi-program/</link>
		<comments>http://thinkparallel.wordpress.com/2010/03/03/gcaa-announces-launch-of-%e2%80%98reporting-of-safety-incident%e2%80%99-rosi-program/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 22:27:26 +0000</pubDate>
		<dc:creator>thinkparallel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://thinkparallel.wordpress.com/?p=61</guid>
		<description><![CDATA[ GCAA Announces Launch of ‘Reporting Of Safety Incident’ (ROSI) Program    Category : GCAA,   Date : Jan, 04 2010   Effective 1 January 2010, ROSI to Create a Centralized Reporting System Across UAE Aviation Authorities; GCAA introduced 24 hour/7 days a Week Duty Inspector on January 1st 2010.   03 January 2010   Dubai, UAE: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thinkparallel.wordpress.com&amp;blog=7043861&amp;post=61&amp;subd=thinkparallel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p> GCAA Announces Launch of ‘Reporting Of Safety Incident’ (ROSI) Program</p>
<td> </td>
<p> <strong>Category :</strong> GCAA,   <strong>Date :</strong> Jan, 04 2010  </p>
<table border="0" cellspacing="0" cellpadding="8" width="100%">
<tbody>
<tr>
<td width="100%" valign="top">
<div>
<div>Effective 1 January 2010, ROSI to Create a Centralized Reporting System Across UAE Aviation Authorities; GCAA introduced 24 hour/7 days a Week Duty Inspector on January 1st 2010.</div>
<div> </div>
<div>03 January 2010</div>
<div> </div>
<div>Dubai, UAE: The General Civil Aviation Authority (GCAA) of the UAE launched an air safety incident-reporting program, the Reporting of Safety Incident (ROSI) Program, on 1 January 2010 as part of its new mandate to centralise aviation safety incident reporting across the UAE.</div>
<div> </div>
<div>“We recognise the need to constantly improve processes and systems for managing risks effectively; a centralized reporting will ensure effective communication and coordination necessary for higher records of successful incident management,” said <strong><span style="color:#003366;">Ismaeil Mohammed Al Balooshi, Director Aviation Safety</span></strong> at the GCAA.</div>
<div> </div>
<div>With the unprecedented growth seen in the country’s aviation industry, the new program underlines the GCAA’s commitment to deliver both safety and quality processes of world-class standards.</div>
<div>&#8212;-</div>
<div>
<div>At the end there was a feedback and technical questions &amp; answers session between audience and <strong>Eng. Syed Raheel Ali</strong> (GCAA E-Services Development Team Member), on behalf of GCAA IT; he also included the future technical enhancements and upcoming features &amp; updates on ROSI Program.</div>
<div> </div>
<div>The highlights of the presentation were, the importance of centralized incident reporting and the procedures to report through GCAA website.</div>
<div>Complete Read here :  <a href="http://www.gcaa.ae/En/Pages/NewsDetails.aspx?NewsID=133">http://www.gcaa.ae/En/Pages/NewsDetails.aspx?NewsID=133</a></div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thinkparallel.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thinkparallel.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thinkparallel.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thinkparallel.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thinkparallel.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thinkparallel.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thinkparallel.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thinkparallel.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thinkparallel.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thinkparallel.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thinkparallel.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thinkparallel.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thinkparallel.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thinkparallel.wordpress.com/61/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thinkparallel.wordpress.com&amp;blog=7043861&amp;post=61&amp;subd=thinkparallel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thinkparallel.wordpress.com/2010/03/03/gcaa-announces-launch-of-%e2%80%98reporting-of-safety-incident%e2%80%99-rosi-program/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd5b5bec85911dee908c921bd7c9ea3a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">thinkparallel</media:title>
		</media:content>
	</item>
		<item>
		<title>Obfuscation in .NET</title>
		<link>http://thinkparallel.wordpress.com/2009/07/06/obfuscation-in-net/</link>
		<comments>http://thinkparallel.wordpress.com/2009/07/06/obfuscation-in-net/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 06:19:52 +0000</pubDate>
		<dc:creator>thinkparallel</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Obfuscation in .NET]]></category>

		<guid isPermaLink="false">http://thinkparallel.wordpress.com/?p=52</guid>
		<description><![CDATA[Obfuscation in .NET Prevent Your Source Code from Being Open Source With so many decompilers available in the software industry today, your application’s source code faces security threats from a variety of prying eyes. This alludes to the potential loss of your intellectual property. But what makes this possible? .NET reflection, ILDASM.exe, and .NET decompilers. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thinkparallel.wordpress.com&amp;blog=7043861&amp;post=52&amp;subd=thinkparallel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Obfuscation in .NET</strong></p>
<p><strong>Prevent Your Source Code from Being Open Source</strong></p>
<p>With so many decompilers available in the software industry today, your application’s source code faces security threats from a variety of prying eyes. This alludes to the potential loss of your intellectual property. But what makes this possible? .NET reflection, ILDASM.exe, and .NET decompilers.</p>
<p>So, then, what’s the solution? This potential threat has facilitated the development of a technology called obfuscation.</p>
<p><strong>What Is Obfuscation?</strong></p>
<p>Without changing its functionality, obfuscation protects source code from being disassembled/decompiled. This is a technology that makes the .NET assemblies more difficult to decompile and impedes the reverse-engineering efforts, hence, protecting the source code from potential threats. Obfuscation works by shrouding the facts in your code. Encryption suffers from the drawback that it needs to keep the decryption key along with the encrypted data. Therefore, it is possible to decrypt your source code. On the other hand, obfuscation can increase the protection against decompilation to a great extent, while leaving the application’s functionality intact.</p>
<p><strong>Why Obfuscate?</strong></p>
<p>There are several reasons why we should obfuscate:</p>
<p>Obfuscation reduces the size of an executable<br />
Obfuscation improves the application’s performance at run time<br />
Obfuscation protects intellectual property</p>
<p><strong>How Does It Work?</strong></p>
<p>Obfuscation encrypts the source code and removes some unnecessary information from the assembly metadata when it deems that it is safe to do so, thus making the assembly more difficult to understand or read after it is decompiled. The assembly metadata and manifest are used by the dissemblers to decompile them and get the original source code. Note that even if an application is compiled to native code at the time of execution, the Microsoft .NET runtime environment still requires that the assembly metadata and IL code be embedded in an assembly before it starts its execution. There are a number of techniques that can be used to obfuscate. However, the disadvantage of obfuscation is that it can affect performance (but not to a great extent).</p>
<p>Obfuscation never changes your source code. Rather, the obfuscators obfuscate your assemblies using a specific encryption methodology and transform them into another assembly that is obfuscated, but the functionality of it remains unaltered.</p>
<p><strong>How to Obfuscate?</strong></p>
<p>Obfuscation in .NET can be achieved by scrambling the meaningful names in the assembly metadata with non-meaningful ones and trimming the non-essential metadata, but without affecting any functionality. The techniques used include, but are not limited to:</p>
<p>Changing the Assembly Metadata<br />
String Encryption<br />
Size Reduction</p>
<p><strong>Is this the Best Solution?</strong></p>
<p>Unfortunately, the available obfuscators are unable to completely protect your intellectual property. Even if obfuscators can be a good tool for preventing most decompilers from stealing your code, if you are determined and possess a good knowledge of data structures and algorithms, you can steal the code even from an obfuscated assembly. So, obfuscation can be a good solution, but there is no software that is absolutely safe.</p>
<p><strong>The Future</strong></p>
<p>Microsoft realized the importance of this technology and introduced the Dotfuscator tool for obfuscation with Visual Studio .NET. In addition, these .NET obfuscator tools are available:</p>
<p>http://www.junglecreatures.com</p>
<p>http://www.9rays.net/Products/Spices.Obfuscator/</p>
<p>Obfuscation is a very powerful technology and will continue to be a part of the application build and deployment process in the years to come.</p>
<p>Working extensively in Microsoft technologies for more than 7 years, Syed Raheel Ali is a Senior Technical Team Leader / SharePoint Consultant for a company in a Dubai, UAE. His programming skills include C, C++, Java, C#, VB, VC++, ASP.NET, XML, and UML. He has worked with .NET and C# for more than five years. Reach raheel at mailto:rahil.alee@gmail.com.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thinkparallel.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thinkparallel.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thinkparallel.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thinkparallel.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thinkparallel.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thinkparallel.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thinkparallel.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thinkparallel.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thinkparallel.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thinkparallel.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thinkparallel.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thinkparallel.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thinkparallel.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thinkparallel.wordpress.com/52/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thinkparallel.wordpress.com&amp;blog=7043861&amp;post=52&amp;subd=thinkparallel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thinkparallel.wordpress.com/2009/07/06/obfuscation-in-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd5b5bec85911dee908c921bd7c9ea3a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">thinkparallel</media:title>
		</media:content>
	</item>
		<item>
		<title>Deployment for 2007 Microsoft Office SharePoint Server</title>
		<link>http://thinkparallel.wordpress.com/2009/06/26/deployment-for-2007-microsoft-office-sharepoint-server/</link>
		<comments>http://thinkparallel.wordpress.com/2009/06/26/deployment-for-2007-microsoft-office-sharepoint-server/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 17:38:30 +0000</pubDate>
		<dc:creator>thinkparallel</dc:creator>
				<category><![CDATA[Moss 2007]]></category>

		<guid isPermaLink="false">http://thinkparallel.wordpress.com/?p=50</guid>
		<description><![CDATA[<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thinkparallel.wordpress.com&amp;blog=7043861&amp;post=50&amp;subd=thinkparallel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thinkparallel.wordpress.com&amp;blog=7043861&amp;post=50&amp;subd=thinkparallel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thinkparallel.wordpress.com/2009/06/26/deployment-for-2007-microsoft-office-sharepoint-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd5b5bec85911dee908c921bd7c9ea3a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">thinkparallel</media:title>
		</media:content>
	</item>
		<item>
		<title>SharePoint and ASP.NET Integration</title>
		<link>http://thinkparallel.wordpress.com/2009/06/26/sharepoint-and-asp-net-integration/</link>
		<comments>http://thinkparallel.wordpress.com/2009/06/26/sharepoint-and-asp-net-integration/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 17:31:18 +0000</pubDate>
		<dc:creator>thinkparallel</dc:creator>
				<category><![CDATA[Moss 2007]]></category>

		<guid isPermaLink="false">http://thinkparallel.wordpress.com/?p=47</guid>
		<description><![CDATA[Whenever we create a new WSS web application in SharePoint, behind the scene a new IIS Web site gets created. Now to make it SharePoint specific, WSS does the following  WSS makes few entries into the IIS Metabase. (IIS Metabase stores conifiguration information about it IIS Web Sites and Virtual Directories) Creates virtual directories which [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thinkparallel.wordpress.com&amp;blog=7043861&amp;post=47&amp;subd=thinkparallel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Whenever we create a new WSS web application in SharePoint, behind the scene a new IIS Web site gets created. Now to make it SharePoint specific, WSS does the following </p>
<ul>
<li>WSS makes few entries into the IIS Metabase. (IIS Metabase stores conifiguration information about it IIS Web Sites and Virtual Directories)</li>
<li>Creates virtual directories which maps to 12 hive (installation directory\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\)
<ul>
<li><em>_controltemplates</em> – where user controls are kept.</li>
<li><em>_layouts</em> – has application pages in it.</li>
<li><em>_vti_bin</em> – dlls and web services repository</li>
<li><em>_wpresources</em> – resource file repository for Web Parts</li>
</ul>
</li>
<li>Adds WSS-specific web.config to the root directory of the IIS Web site.</li>
<li>Adds wildcard application map to route all incoming to<em> aspnet_isapi.dll</em>. (Right click your iis web site, select home directory, click on Configuration – there we could find the wildcard application map entry.</li>
</ul>
<p> </p>
<p>Finally WSS extends the routing architecture of IIS and ASP.NET to properly route all incoming requests through WSS runtime.</p>
<p> </p>
<p>IIS maps an incoming request to a physical file within root directory of an IIS Web Site or virtual directory. (Virtual directory – an entity defining a child URL space nested within the URL space of its parent IIS Web Site. IIS provides the flexibility of defining the root directory for a virtual directory at any location)</p>
<p> </p>
<p>IIS supports Internet Server Application Programming Interface (ISAPI) programming model, it allows us to configure an IIS Web Site or virtual directory so that incoming requests trigger the execution of the custom code on the Web Server.</p>
<p> </p>
<p>ISAPI programming models consists of ISAPI extension and ISAPI filters.</p>
<p>ISAPI extension is a dll that serves as an endpoint for all the incoming requests.</p>
<p>More on ISAPI extension</p>
<p><a href="http://msdn.microsoft.com/en-us/library/ms525172.aspx">http://msdn.microsoft.com/en-us/library/ms525172.aspx</a></p>
<p> </p>
<p>ISAPI filter-acts as an interceptor. It provides pre as well post processing for each and every incoming request. These extensions are however difficult to develop as they are written in C++.</p>
<p> </p>
<p>More on ISAPI filters</p>
<p><a href="http://msdn.microsoft.com/en-us/library/ms524610.aspx">http://msdn.microsoft.com/en-us/library/ms524610.aspx</a></p>
<p> </p>
<p>For better understanding of low level look at ASP.NET architecture</p>
<p> </p>
<p><a href="http://www.west-wind.com/presentations/howaspnetworks/howaspnetworks.asp">http://www.west-wind.com/presentations/howaspnetworks/howaspnetworks.asp</a></p>
<p> </p>
<p>In short, ASP.NET framework is implemented as an ISAPI extension named aspnet_isapi.dll. Whenever IIS sees an incoming request targeting a file with extension like .aspx,.ascx,.asmx, based on the application map defined, it forwards the request to aspnet_isapi.dll, which effectively passes control over to ASP.NET framework.</p>
<p> </p>
<p>ASP.NET framework compiles an .aspx page to .dll. It parses the .aspx file to generate a C# file that inherits from Page class. Once the ASP.NET page parser builds the source c# file for an .aspx page, it than compile it into a dll. This occurs only the first time when the page is requested; afterwards the same dll is used for all the subsequent requests that target the same page.</p>
<p> </p>
<p>Now comes into picture HTTP request pipeline exposed by ASP.NET framework. It provides the developer with a degree of control comparable with ISAPI programming model. Http Request Pipeline contains HttpHandler, HttpApplication nad HttpModule components.</p>
<p> </p>
<p>Once a request comes into the AppDomain managed by the ASP.NET runtime, ASP.NET uses the HttpWorkerRequest class to store the request information. Following that, the runtime wraps the request’s information in a class named HttpContext. The HttpContext class includes all the information you’d ever want to know about a request, including references to the current request’s HttpRequest and HttpResponse objects. The runtime produces an instance of HttpApplication (if one is not already available) and then fires a number of application-wide events (such as BeginRequest and AuthenticateRequest). These events are also pumped through any HttpModules attached to the pipeline. Finally, ASP.NET figures out what kind of handler is required to handle the request, creates one, and asks the handler to process the request. After the handler deals with the request, ASP.NET fires a number of post-processing events (like EndRequest) through the HttpApplication object and the HttpModules.</p>
<p> </p>
<p> </p>
<p>HttpApplication – During the lifetime of a Web application, the HttpApplication objects serve as places to hold application-wide data and handle application-side events.</p>
<p>HttpModules – While the Application object is suitable for handling application-wide events and data on a small scale, sometimes application-wide tasks need a little heavier machinery. HttpModules serve that purpose.ASP.NET includes a number of predefined HttpModules. For example, session state, authentication, and authorization are handled via HttpModules.</p>
<p>HttpHandlers -The last stop a request makes in the pipeline is an HttpHandler. Any class implementing the interface IHttpHandler qualifies as a handler. When a request finally reaches the end of the pipeline, ASP.NET consults the configuration file to see if the particular file extension is mapped to an HttpHandler. If it is, the ASP.NET loads the handler and calls the handler’s IHttpHandler.ProcessRequest method to execute the request.</p>
<p>ASP.NET includes several HTTPHandlers already, including System.Web.UI.Page and System.Web.Services.WebService</p>
<p><a href="http://www.brainbell.com/tutorials/ASP/The_ASP.NET_Pipeline.html">http://www.brainbell.com/tutorials/ASP/The_ASP.NET_Pipeline.html</a></p>
<p>WSS uses the above ASP.NET technique to extend the HTTP Request Pipeline.</p>
<p>Configures each web application with custom HttpApplication object using SPHttpApplication class. This class is within Microsoft.SharePoint.dll. It creates a custom global.asax file at the root of Web Application that inherits from SPHttpApplication.</p>
<p>&lt;%@ Assembly Name=”Microsoft.SharePoint”%&gt;&lt;%@ Application Language=”C#” Inherits=”Microsoft.SharePoint.ApplicationRuntime.SPHttpApplication” %&gt;</p>
<p>It also makes use of custom HttpHandler and HttpModule as well.</p>
<p>We could find their entries in web.config of the web applciation</p>
<p>  &lt;httpHandlers&gt;</p>
<p>      &lt;remove verb=“GET,HEAD,POST“ path=“*“ /&gt;</p>
<p>      &lt;add verb=“GET,HEAD,POST“ path=“*“ type=“Microsoft.SharePoint.ApplicationRuntime.<strong>SPHttpHandler</strong>, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c“ /&gt;</p>
<p>      &lt;add verb=“OPTIONS,PROPFIND,PUT,LOCK,UNLOCK,MOVE,COPY,GETLIB,PROPPATCH,MKCOL,DELETE,(GETSOURCE),(HEADSOURCE),(POSTSOURCE)“ path=“*“ type=“Microsoft.SharePoint.ApplicationRuntime.<strong>SPHttpHandler</strong>, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c“ /&gt;</p>
<p>// other handlers</p>
<p>    &lt;/httpHandlers&gt;</p>
<p>&lt;httpModules&gt;</p>
<p>      &lt;clear /&gt;</p>
<p>      &lt;add name=“SPRequest“ type=“Microsoft.SharePoint.ApplicationRuntime.<strong>SPRequestModule</strong>, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c“ /&gt;</p>
<p>// other http modules</p>
<p>    &lt;/httpModules&gt;</p>
<p> </p>
<p> </p>
<p> </p>
<p>And finally it makes use of SPVirtualPathProvider, which abstracts the details of where page files are stored away from the ASP.NET runtime, using which the pages are served from content database. Once the content are retrieved by Virtual path provider it is passed to asp.net runtime for parsing. SPRequestModule component contains code to register SPVirutalPathProvider class with ASP.NET framework. SPVirutalPathProvider class works toghether with SPPageParserFilter to supply processing instructions to ASP.NET page parser whether to compile the aspx page to dll or process it in no compile mode.</p>
<p>More on virual path provider</p>
<p><a href="http://weblogs.asp.net/scottgu/archive/2005/11/27/431650.aspx">http://weblogs.asp.net/scottgu/archive/2005/11/27/431650.aspx</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thinkparallel.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thinkparallel.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thinkparallel.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thinkparallel.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thinkparallel.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thinkparallel.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thinkparallel.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thinkparallel.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thinkparallel.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thinkparallel.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thinkparallel.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thinkparallel.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thinkparallel.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thinkparallel.wordpress.com/47/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thinkparallel.wordpress.com&amp;blog=7043861&amp;post=47&amp;subd=thinkparallel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thinkparallel.wordpress.com/2009/06/26/sharepoint-and-asp-net-integration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd5b5bec85911dee908c921bd7c9ea3a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">thinkparallel</media:title>
		</media:content>
	</item>
		<item>
		<title>Launching an application from a link in SharePoint</title>
		<link>http://thinkparallel.wordpress.com/2009/05/07/launching-an-application-from-a-link-in-sharepoint/</link>
		<comments>http://thinkparallel.wordpress.com/2009/05/07/launching-an-application-from-a-link-in-sharepoint/#comments</comments>
		<pubDate>Thu, 07 May 2009 07:10:16 +0000</pubDate>
		<dc:creator>thinkparallel</dc:creator>
				<category><![CDATA[Moss 2007]]></category>

		<guid isPermaLink="false">http://thinkparallel.wordpress.com/?p=39</guid>
		<description><![CDATA[When you are viewing lists of items in SharePoint, the context menu is fantastic as it allows you to edit documents directly from certain native applications. For example with a Word document you are able to select &#8216;Edit In Microsoft Word&#8217; from the context menu, which when clicked fires up Microsoft Word and enables you [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thinkparallel.wordpress.com&amp;blog=7043861&amp;post=39&amp;subd=thinkparallel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="msgcns!AEC0DCBC460E45B9!1059" class="bvMsg">
<div>When you are viewing lists of items in SharePoint, the context menu is fantastic as it allows you to edit documents directly from certain native applications. For example with a Word document you are able to select &#8216;Edit In Microsoft Word&#8217; from the context menu, which when clicked fires up Microsoft Word and enables you to edit the document. However when you start creating your own custom webparts from SharePoint list items, you lose this ability. Today I had the challenge of providing a link to a document that was stored in a SharePoint list, but I needed to be able to fire the document up directly from the link.</div>
<div> </div>
<div>After quite a bit of trawling through the web I found this great article which really got me going in the right direction:</div>
<p><a href="http://wiki.threewill.com/display/is/2007/10/">http://wiki.threewill.com/display/is/2007/10/</a>.</p>
<p>Basically you need to call a javascript method called dispex() which will open the application for you (instead of opening the document as read only).</p>
<p>So within my code I already had my Hyperlink control (lnkDocumentDownload) which was populated by an SPListItem. This also has the URL of the document set in lnkDocumentDownload.NavigateUrl. This needs to be set for this to work, and of course for applications that don&#8217;t have integration with SharePoint, they will just use this link to go to the document.</p>
<p>What I needed to additionally add to enable the launching of the application was:<span style="font-size:x-small;"> </span></p>
<blockquote><p>lnkDocumentDownload.Attributes.Add(<span style="font-size:x-small;color:#a31515;">&#8220;onfocus&#8221;</span><span style="font-size:x-small;">, </span><span style="font-size:x-small;color:#a31515;">&#8220;OnLink(this)&#8221;</span><span style="font-size:x-small;">);<br />
lnkDocumentDownload.Attributes.Add( </span><span style="font-size:x-small;color:#a31515;">&#8220;onclick&#8221;</span><span style="font-size:x-small;">, </span><span style="font-size:x-small;color:#a31515;">@&#8221;DispEx(this,event,&#8217;TRUE&#8217;,'FALSE&#8217;,'FALSE&#8217;,'SharePoint.OpenDocuments.3&#8242;,&#8217;0&#8242;,&#8217;SharePoint.OpenDocuments&#8217;,&#8221;,&#8221;,&#8221;,&#8217;2&#8242;,&#8217;0&#8242;,&#8217;0&#8242;,&#8217;0x7fffffffffffffff&#8217;)&#8221;</span><span style="font-size:x-small;">);</span></p>
<p>Once I added this in, whenever I clicked the link in my control, it would behave in the same way as clicking on &#8216;Edit in Microsoft Word&#8217;.</p>
<p>I also found some &#8216;kind of&#8217; (not really) helpful documentation on the javascript methods on the Microsoft website here: <a href="http://msdn.microsoft.com/en-us/library/cc264013.aspx">http://msdn.microsoft.com/en-us/library/cc264013.aspx</a></p></blockquote>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thinkparallel.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thinkparallel.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thinkparallel.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thinkparallel.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thinkparallel.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thinkparallel.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thinkparallel.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thinkparallel.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thinkparallel.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thinkparallel.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thinkparallel.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thinkparallel.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thinkparallel.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thinkparallel.wordpress.com/39/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thinkparallel.wordpress.com&amp;blog=7043861&amp;post=39&amp;subd=thinkparallel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thinkparallel.wordpress.com/2009/05/07/launching-an-application-from-a-link-in-sharepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd5b5bec85911dee908c921bd7c9ea3a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">thinkparallel</media:title>
		</media:content>
	</item>
		<item>
		<title>Saving files in ItemUpdated for a SharePoint List</title>
		<link>http://thinkparallel.wordpress.com/2009/05/07/saving-files-in-itemupdated-for-a-sharepoint-list/</link>
		<comments>http://thinkparallel.wordpress.com/2009/05/07/saving-files-in-itemupdated-for-a-sharepoint-list/#comments</comments>
		<pubDate>Thu, 07 May 2009 07:06:28 +0000</pubDate>
		<dc:creator>thinkparallel</dc:creator>
				<category><![CDATA[Moss 2007]]></category>

		<guid isPermaLink="false">http://thinkparallel.wordpress.com/?p=37</guid>
		<description><![CDATA[I had an issue today trying to call File.SaveBinary() method of an SPListItem in the ItemUpdated method. Everytime I treid to call it it seemed to throw an error. In the end there was an easy fix for this &#8211; make sure AllowUnsafeUpdates is set to true. Once this is set, the binary can be saved [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thinkparallel.wordpress.com&amp;blog=7043861&amp;post=37&amp;subd=thinkparallel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="msgcns!AEC0DCBC460E45B9!1052" class="bvMsg">
<div>I had an issue today trying to call File.SaveBinary() method of an SPListItem in the ItemUpdated method. Everytime I treid to call it it seemed to throw an error. In the end there was an easy fix for this &#8211; make sure AllowUnsafeUpdates is set to true. Once this is set, the binary can be saved no problem. The other method you should call before you save the binary is the this.DisableEventFiring(); method to ensure that the event does not go into an endless loop.</div>
<div> </div>
<div>ie </div>
<div><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">this<span style="font-size:x-small;"><span style="color:#000000;">.DisableEventFiring();</span></span></span></span></div>
<div><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#2b91af;">SPListItem</span><span style="font-size:x-small;"> item = properties.ListItem;</span></span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;">item.Web.AllowUnsafeUpdates = <span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;">true</span><span style="font-size:x-small;">;</span></span></span></span></span></span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;">item.File.SaveBinary(updatedFile);</span></span></span></span></div>
<div><span style="font-size:x-small;">item.Web.AllowUnsafeUpdates =<span style="font-size:x-small;color:#0000ff;"> false</span><span style="font-size:x-small;">;</span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;">this</span></span></span></span></span><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;"><span style="color:#000000;">.EnableEventFiring();</span></span></span></span></span></span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;"></span></span></span></span></span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;"></span></span></span></span></span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;"></span></span></span></span></span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;"></span></span></span></span></span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;"></span></span></span></span></span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;"></span></span></span></span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;"></span></span></span></span></span></div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thinkparallel.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thinkparallel.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thinkparallel.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thinkparallel.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thinkparallel.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thinkparallel.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thinkparallel.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thinkparallel.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thinkparallel.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thinkparallel.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thinkparallel.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thinkparallel.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thinkparallel.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thinkparallel.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thinkparallel.wordpress.com&amp;blog=7043861&amp;post=37&amp;subd=thinkparallel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thinkparallel.wordpress.com/2009/05/07/saving-files-in-itemupdated-for-a-sharepoint-list/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd5b5bec85911dee908c921bd7c9ea3a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">thinkparallel</media:title>
		</media:content>
	</item>
		<item>
		<title>Invalid Security Validation in SharePoint code</title>
		<link>http://thinkparallel.wordpress.com/2009/05/07/invalid-security-validation-in-sharepoint-code/</link>
		<comments>http://thinkparallel.wordpress.com/2009/05/07/invalid-security-validation-in-sharepoint-code/#comments</comments>
		<pubDate>Thu, 07 May 2009 07:04:08 +0000</pubDate>
		<dc:creator>thinkparallel</dc:creator>
				<category><![CDATA[Moss 2007]]></category>

		<guid isPermaLink="false">http://thinkparallel.wordpress.com/?p=35</guid>
		<description><![CDATA[Twice in the past week I have had the issue in my MOSS code where it is throwing an exception: &#8220;The security validation for this page is invalid. Click Back in your Web browser, refresh the page, and try your operation again&#8221; As it turns out the problem isn&#8217;t so had to fix. Basically you [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thinkparallel.wordpress.com&amp;blog=7043861&amp;post=35&amp;subd=thinkparallel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h4 class="beTitle">Twice in the past week I have had the issue in my MOSS code where it is throwing an exception: &#8220;The security validation for this page is invalid. Click Back in your Web browser, refresh the page, and try your operation again&#8221;</h4>
<div id="msgcns!AEC0DCBC460E45B9!1172" class="bvMsg">
<p>As it turns out the problem isn&#8217;t so had to fix. Basically you need to set FormDigestSettings to disabled. This can be done in your code as follows:<span style="font-size:x-small;color:#2b91af;"> </span></p>
<p><span style="font-size:x-small;color:#2b91af;">SPWebApplication </span><span style="font-size:x-small;"><span style="color:#000000;">webApp = site.WebApplication;<br />
</span></span><span style="font-size:x-small;color:#0000ff;">bool</span><span style="font-size:x-small;"> formDigestSettingsEnabled = webApp.FormDigestSettings.Enabled;<br />
webApp.FormDigestSettings.Enabled = </span><span style="font-size:x-small;color:#0000ff;">false</span><span style="font-size:x-small;">;<br />
<span style="font-size:x-small;color:#008000;">//Do all your code in here where it is throwing the error..<br />
</span></span><span style="font-size:x-small;">webApp.FormDigestSettings.Enabled = formDigestSettingsEnabled; </span></p>
<p><span style="font-size:x-small;">This can also be fixed by turning off the security validation for an application in Central Admin (however I probably wouldn&#8217;t recommend this):</span></p>
<p><span style="font-size:x-small;"><strong>Central Admin -&gt; Application Management -&gt; General Settings -&gt; Turn security validation off</strong></span></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thinkparallel.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thinkparallel.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thinkparallel.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thinkparallel.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thinkparallel.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thinkparallel.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thinkparallel.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thinkparallel.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thinkparallel.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thinkparallel.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thinkparallel.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thinkparallel.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thinkparallel.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thinkparallel.wordpress.com/35/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thinkparallel.wordpress.com&amp;blog=7043861&amp;post=35&amp;subd=thinkparallel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thinkparallel.wordpress.com/2009/05/07/invalid-security-validation-in-sharepoint-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd5b5bec85911dee908c921bd7c9ea3a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">thinkparallel</media:title>
		</media:content>
	</item>
		<item>
		<title>Impersonation in MOSS 2007</title>
		<link>http://thinkparallel.wordpress.com/2009/05/07/impersonation-in-moss-2007/</link>
		<comments>http://thinkparallel.wordpress.com/2009/05/07/impersonation-in-moss-2007/#comments</comments>
		<pubDate>Thu, 07 May 2009 06:48:29 +0000</pubDate>
		<dc:creator>thinkparallel</dc:creator>
				<category><![CDATA[Moss 2007]]></category>

		<guid isPermaLink="false">http://thinkparallel.wordpress.com/?p=32</guid>
		<description><![CDATA[I recently had an issue where I attached a SharePoint event handler to a list item, and when the list item was approved it fired off a group email. Problem was that if the user who approved the item did not have super powered privileges on the system, the event handler would fail due to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thinkparallel.wordpress.com&amp;blog=7043861&amp;post=32&amp;subd=thinkparallel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h4 class="beTitle">I recently had an issue where I attached a SharePoint event handler to a list item, and when the list item was approved it fired off a group email. Problem was that if the user who approved the item did not have super powered privileges on the system, the event handler would fail due to a permissions error. </h4>
<h4 class="beTitle">To run the SPSecurity.RunWithElevatedPrivileges method </h4>
<div id="msgcns!AEC0DCBC460E45B9!419" class="bvMsg">
<div>
<p>This also meant that I could create a method in this class which is called in the SPSecurity.CodeToRunElevated constructor. Also it is worth noting that if you are still getting security validation errors, you need to wrap update() methods with the AllowSafeUpdates method (also shown in code below).<span style="font-size:x-small;color:#0000ff;font-family:Courier New;"> </span></p>
<p><span style="font-size:x-small;color:#0000ff;font-family:Courier New;">sealed</span><span style="font-size:x-small;color:#000000;font-family:Courier New;"> </span><span style="font-size:x-small;color:#0000ff;font-family:Courier New;">class</span><span style="font-size:x-small;color:#000000;font-family:Courier New;"> </span><span style="font-size:x-small;color:#008080;font-family:Courier New;">ScheduleMail<br />
</span><span style="font-size:x-small;color:#000000;font-family:Courier New;">{<br />
</span><span style="font-size:x-small;color:#0000ff;font-family:Courier New;">   private</span><span style="font-size:x-small;color:#000000;font-family:Courier New;"> </span><span style="font-size:x-small;color:#008080;font-family:Courier New;">Guid</span><span style="font-size:x-small;color:#000000;font-family:Courier New;"> _siteGuid;<br />
</span><span style="font-size:x-small;color:#0000ff;font-family:Courier New;">   private</span><span style="font-size:x-small;color:#000000;font-family:Courier New;"> </span><span style="font-size:x-small;color:#0000ff;font-family:Courier New;">string</span><span style="font-size:x-small;font-family:Courier New;"><span style="color:#000000;"> _webUrl; </span></span><span style="font-size:x-small;color:#0000ff;font-family:Courier New;">   </span></p>
<p><span style="font-size:x-small;color:#0000ff;font-family:Courier New;">   public</span><span style="font-size:x-small;font-family:Courier New;"> ScheduleMail(</span><span style="font-size:x-small;color:#008080;font-family:Courier New;">Guid</span><span style="font-size:x-small;font-family:Courier New;"> siteGuid, </span><span style="font-size:x-small;color:#0000ff;font-family:Courier New;">string</span></p>
<div><span style="font-size:x-small;font-family:Courier New;"> webUrl)<br />
<span style="color:#0000ff;">   </span>{<br />
<span style="color:#0000ff;">      </span>_siteGuid = siteGuid;<br />
<span style="color:#0000ff;">      </span>_webUrl = webUrl;<br />
<span style="color:#0000ff;">   </span>} <span style="font-size:x-small;font-family:Courier New;">  </span></span></div>
<p><span style="font-size:x-small;font-family:Courier New;"><span style="font-size:x-small;font-family:Courier New;"> </p>
<p></span></span><span style="font-size:x-small;color:#0000ff;font-family:Courier New;">public</span><span style="font-size:x-small;font-family:Courier New;"> </span><span style="font-size:x-small;color:#0000ff;font-family:Courier New;">void</span><span style="font-size:x-small;font-family:Courier New;"> SendScheduledMail()<br />
<span style="color:#0000ff;">   </span>{<br />
</span><span style="font-size:x-small;color:#008080;font-family:Courier New;"><span style="color:#0000ff;">      </span>SPSite</span><span style="font-size:x-small;font-family:Courier New;"> mySite = </span><span style="font-size:x-small;color:#0000ff;font-family:Courier New;">new</span><span style="font-size:x-small;font-family:Courier New;"> </span><span style="font-size:x-small;color:#008080;font-family:Courier New;">SPSite</span><span style="font-size:x-small;font-family:Courier New;">(_siteGuid);<br />
</span><span style="font-size:x-small;color:#008080;font-family:Courier New;"><span style="color:#0000ff;">      </span>SPWeb</span><span style="font-size:x-small;font-family:Courier New;"> myWeb = mySite.OpenWeb(_webUrl);<br />
</span></p>
<div><span style="font-size:x-small;color:#008000;font-family:Courier New;"><span style="color:#0000ff;">      </span>// Do the rest of the code requiring privileges<span style="color:#0000ff;">      </span>&#8230; //Created dispatcher job in here</span></div>
<p><span style="font-size:x-small;color:#008000;font-family:Courier New;"><span style="color:#0000ff;">      </span>//Get around security </p>
<div><span style="font-size:x-small;color:#008000;font-family:Courier New;"> </span></div>
<p><span style="font-size:x-small;color:#008000;font-family:Courier New;"> </p>
<p></span></span><span style="font-size:x-small;color:#000000;font-family:Courier New;"><span style="color:#0000ff;">      </span>myWeb.AllowUnsafeUpdates = </span><span style="font-size:x-small;color:#0000ff;font-family:Courier New;">true</span><span style="font-size:x-small;color:#000000;font-family:Courier New;">;<br />
<span style="color:#0000ff;">      </span>dispatcherJob.Update();<br />
<span style="color:#0000ff;">      </span>myWeb.AllowUnsafeUpdates = </span><span style="font-size:x-small;color:#0000ff;font-family:Courier New;">false</span><span style="font-size:x-small;color:#000000;font-family:Courier New;">;</span><span style="font-size:x-small;color:#008000;font-family:Courier New;"><br />
<span style="color:#0000ff;">   </span>}<br />
}</span><span style="font-size:small;color:#000000;font-family:Times New Roman;"> </span></p>
<p>In the end the final code I implemented was along these lines<span style="font-size:x-small;color:#0000ff;font-family:Courier New;"> </span></p>
<p><span style="font-size:x-small;color:#0000ff;font-family:Courier New;">override</span><span style="font-size:x-small;color:#000000;font-family:Courier New;"> </span><span style="font-size:x-small;color:#0000ff;font-family:Courier New;">void</span><span style="font-size:x-small;color:#000000;font-family:Courier New;"> ItemUpdated(</span><span style="font-size:x-small;color:#008080;font-family:Courier New;">SPItemEventProperties</span><span style="font-size:x-small;color:#000000;font-family:Courier New;"> properties)<br />
{<br />
</span><span style="font-size:x-small;color:#0000ff;font-family:Courier New;">   base</span><span style="font-size:x-small;color:#000000;font-family:Courier New;">.ItemUpdating(properties);<br />
</span><span style="font-size:x-small;color:#008080;font-family:Courier New;"><span style="color:#0000ff;">   </span>ScheduleMail</span><span style="font-size:x-small;color:#000000;font-family:Courier New;"> mailToSend = </span><span style="font-size:x-small;color:#0000ff;font-family:Courier New;">new</span><span style="font-size:x-small;color:#000000;font-family:Courier New;"> </span><span style="font-size:x-small;color:#008080;font-family:Courier New;">ScheduleMail</span><span style="font-size:x-small;color:#000000;font-family:Courier New;">(properties.SiteId, properties.RelativeWebUrl);<br />
</span><span style="font-size:x-small;color:#008080;font-family:Courier New;"><span style="color:#0000ff;">   </span>SPSecurity</span><span style="font-size:x-small;color:#000000;font-family:Courier New;">.</span><span style="font-size:x-small;color:#008080;font-family:Courier New;">CodeToRunElevated</span><span style="font-size:x-small;color:#000000;font-family:Courier New;"> codeRequiringElevated = </span><span style="font-size:x-small;color:#0000ff;font-family:Courier New;">new</span><span style="font-size:x-small;color:#000000;font-family:Courier New;"> </span><span style="font-size:x-small;color:#008080;font-family:Courier New;">SPSecurity</span><span style="font-size:x-small;color:#000000;font-family:Courier New;">.</span><span style="font-size:x-small;color:#008080;font-family:Courier New;">CodeToRunElevated</span><span style="font-size:x-small;color:#000000;font-family:Courier New;">(mailToSend.SendScheduledMail);<br />
</span><span style="font-size:x-small;color:#008080;font-family:Courier New;"><span style="color:#0000ff;">   </span>SPSecurity</span><span style="font-size:x-small;font-family:Courier New;"><span style="color:#000000;">.RunWithElevatedPrivileges(codeRequiringElevated);<br />
}</span></span></div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thinkparallel.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thinkparallel.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thinkparallel.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thinkparallel.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thinkparallel.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thinkparallel.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thinkparallel.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thinkparallel.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thinkparallel.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thinkparallel.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thinkparallel.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thinkparallel.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thinkparallel.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thinkparallel.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thinkparallel.wordpress.com&amp;blog=7043861&amp;post=32&amp;subd=thinkparallel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thinkparallel.wordpress.com/2009/05/07/impersonation-in-moss-2007/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd5b5bec85911dee908c921bd7c9ea3a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">thinkparallel</media:title>
		</media:content>
	</item>
	</channel>
</rss>
