<?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/"
	>

<channel>
	<title>ARB Security Solutions - SharePoint Security Integrators</title>
	<atom:link href="http://www.sharepointsecurity.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sharepointsecurity.com</link>
	<description>The Authorative Resource For SharePoint Security Articles, Research, Software, And Security Integration Consulting</description>
	<lastBuildDate>Thu, 17 May 2012 02:56:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	 
	<item>
		<title>SharePoint And ADFS: SecurityTokenException &#8211; The issuer of the token is not a trusted issuer</title>
		<link>http://www.sharepointsecurity.com/sharepoint/sharepoint-security/sharepoint-and-adfs-securitytokenexception-the-issuer-of-the-token-is-not-a-trusted-issuer/</link>
		<comments>http://www.sharepointsecurity.com/sharepoint/sharepoint-security/sharepoint-and-adfs-securitytokenexception-the-issuer-of-the-token-is-not-a-trusted-issuer/#comments</comments>
		<pubDate>Mon, 05 Mar 2012 17:54:19 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Active Directory Federation Services]]></category>
		<category><![CDATA[SharePoint Security]]></category>
		<category><![CDATA[actual]]></category>
		<category><![CDATA[AD]]></category>
		<category><![CDATA[ADFS]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[building]]></category>
		<category><![CDATA[built]]></category>
		<category><![CDATA[CA]]></category>
		<category><![CDATA[certificate]]></category>
		<category><![CDATA[certificates]]></category>
		<category><![CDATA[Claims]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[common]]></category>
		<category><![CDATA[complete]]></category>
		<category><![CDATA[Cryptography]]></category>
		<category><![CDATA[CT]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[details]]></category>
		<category><![CDATA[DP]]></category>
		<category><![CDATA[easy]]></category>
		<category><![CDATA[entity]]></category>
		<category><![CDATA[EV]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[exception]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[Federation]]></category>
		<category><![CDATA[folder]]></category>
		<category><![CDATA[fyi]]></category>
		<category><![CDATA[HR]]></category>
		<category><![CDATA[ID]]></category>
		<category><![CDATA[Identity]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[issue]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[MA]]></category>
		<category><![CDATA[message]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[OM]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[path]]></category>
		<category><![CDATA[point]]></category>
		<category><![CDATA[port]]></category>
		<category><![CDATA[power]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[provision]]></category>
		<category><![CDATA[quest]]></category>
		<category><![CDATA[reason]]></category>
		<category><![CDATA[reasons]]></category>
		<category><![CDATA[receiver]]></category>
		<category><![CDATA[request]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[saml]]></category>
		<category><![CDATA[sec]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[setup]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[sharepoint server]]></category>
		<category><![CDATA[steps]]></category>
		<category><![CDATA[string]]></category>
		<category><![CDATA[system.web]]></category>
		<category><![CDATA[tec]]></category>
		<category><![CDATA[Token]]></category>
		<category><![CDATA[trusted]]></category>
		<category><![CDATA[URI]]></category>
		<category><![CDATA[visio]]></category>
		<category><![CDATA[wrong]]></category>

		<guid isPermaLink="false">http://www.sharepointsecurity.com/?p=6697</guid>
		<description><![CDATA[This is a pretty common ADFS error, and there are all sorts of reasons that it could happen. The stack trace will be this: PLAIN TEXT CODE: Microsoft.SharePoint.IdentityModel.SPTrustedIssuerNameRegistry.GetIssuerName&#40;SecurityToken securityToken&#41; &#160;    at Microsoft.SharePoint.IdentityModel.SPPassiveIssuerNameRegistry.GetIssuerName&#40;SecurityToken securityToken&#41; &#160;    at Microsoft.IdentityModel.Tokens.Saml11.Saml11SecurityTokenHandler.CreateClaims&#40;SamlSecurityToken samlSecurityToken&#41; &#160;    at Microsoft.IdentityModel.Tokens.Saml11.Saml11SecurityTokenHandler.ValidateToken&#40;SecurityToken token&#41; &#160;    at Microsoft.IdentityModel.Web.TokenReceiver.AuthenticateToken&#40;SecurityToken token, Boolean ensureBearerToken, String endpointUri&#41; &#160;    at [...]
Related posts:<ol>
<li><a href='http://www.sharepointsecurity.com/sharepoint/sharepoint-security/adfs-not-resolving-active-directory-security-groups-in-sharepoint/' rel='bookmark' title='ADFS Not Resolving Active Directory Security Groups In SharePoint'>ADFS Not Resolving Active Directory Security Groups In SharePoint</a></li>
<li><a href='http://www.sharepointsecurity.com/sharepoint/it-consulting-ethics-part-3-benefit-cost-analysis-and-government-considerations/' rel='bookmark' title='IT Consulting Ethics &#8211; Part 3 &#8211; Benefit-Cost Analysis and Government Considerations'>IT Consulting Ethics &#8211; Part 3 &#8211; Benefit-Cost Analysis and Government Considerations</a></li>
<li><a href='http://www.sharepointsecurity.com/sharepoint/claims-based-authentication/sharepoint-claims-based-authentication-architectures-explained-part-2-sharepoint-as-a-browser-based-application/' rel='bookmark' title='SharePoint Claims Based Authentication Architectures Explained – Part 3 – SharePoint As A Browser Based Application'>SharePoint Claims Based Authentication Architectures Explained – Part 3 – SharePoint As A Browser Based Application</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>This is a pretty common ADFS error, and there are all sorts of reasons that it could happen.</p>
<p>The stack trace will be this:</p>
<div class="igBar"><span id="lcode-2"><a href="#" onclick="javascript:showPlainTxt('code-2'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-2">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Microsoft.<span style="">SharePoint</span>.<span style="">IdentityModel</span>.<span style="">SPTrustedIssuerNameRegistry</span>.<span style="">GetIssuerName</span><span style="color:#006600; font-weight:bold;">&#40;</span>SecurityToken securityToken<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">   at Microsoft.<span style="">SharePoint</span>.<span style="">IdentityModel</span>.<span style="">SPPassiveIssuerNameRegistry</span>.<span style="">GetIssuerName</span><span style="color:#006600; font-weight:bold;">&#40;</span>SecurityToken securityToken<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">   at Microsoft.<span style="">IdentityModel</span>.<span style="">Tokens</span>.<span style="">Saml11</span>.<span style="">Saml11SecurityTokenHandler</span>.<span style="">CreateClaims</span><span style="color:#006600; font-weight:bold;">&#40;</span>SamlSecurityToken samlSecurityToken<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">   at Microsoft.<span style="">IdentityModel</span>.<span style="">Tokens</span>.<span style="">Saml11</span>.<span style="">Saml11SecurityTokenHandler</span>.<span style="">ValidateToken</span><span style="color:#006600; font-weight:bold;">&#40;</span>SecurityToken token<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">   at Microsoft.<span style="">IdentityModel</span>.<span style="">Web</span>.<span style="">TokenReceiver</span>.<span style="">AuthenticateToken</span><span style="color:#006600; font-weight:bold;">&#40;</span>SecurityToken token, Boolean ensureBearerToken, String endpointUri<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">   at Microsoft.<span style="">IdentityModel</span>.<span style="">Web</span>.<span style="">WSFederationAuthenticationModule</span>.<span style="">SignInWithResponseMessage</span><span style="color:#006600; font-weight:bold;">&#40;</span>HttpRequest request<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">   at Microsoft.<span style="">IdentityModel</span>.<span style="">Web</span>.<span style="">WSFederationAuthenticationModule</span>.<span style="">OnAuthenticateRequest</span><span style="color:#006600; font-weight:bold;">&#40;</span>Object sender, EventArgs args<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">   at System.<span style="">Web</span>.<span style="">HttpApplication</span>.<span style="">SyncEventExecutionStep</span>.<span style="">System</span>.<span style="">Web</span>.<span style="">HttpApplication</span>.<span style="">IExecutionStep</span>.<span style="">Execute</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">   at System.<span style="">Web</span>.<span style="">HttpApplication</span>.<span style="">ExecuteStep</span><span style="color:#006600; font-weight:bold;">&#40;</span>IExecutionStep step, Boolean&amp;amp; completedSynchronously<span style="color:#006600; font-weight:bold;">&#41;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>At the end of the day though, don't sit around and fiddle with the SharePoint trusted authorities and yada yada yada, it boils down to a certificate problem. Basically the one that was specified as the signing certificate, when exported during the ADFS setup, is either malformed (the certificate chain is incomplete) or plainwrong wrong when the trusted issuer was being built up in SharePoint ala powershell. So to get around the error follow two pretty basic steps.</p>
<ol>
<li>Verify the appropriate certificate chain is present on the SharePoint server in both the trusted root authorities as well as in the SharePoint folder within the Certificate MMC snap-in. Never ever, ever delete the self issued ones that SharePoint provisioned within that folder. You will cause a Micheal Bay-spolosion. To verify the chain, just popup open the certificate details within some interface (like, the MMC :) ) doesn't really matter what and verify that the chain is trusted and existent.</li>
<li>Next, verify that you actually used the right certificate when specifying the certificate path when building the <strong>System.Security.Cryptography.X509Certificates.X509Certificate2</strong> object to pass into your <strong>SPTrustedIdentityTokenIssuer</strong>. This is pretty easy to mess up when troubleshooting if you are swapping certs all over the place.</li>
</ol>
<p>Both of these are in place, then that error will go away. Not that another won't popup :)</p>
<div class="addtoany_share_save_container"><div class="a2a_kit a2a_target addtoany_list" id="wpa2a_1"><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.sharepointsecurity.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="share save 171 16 SharePoint And ADFS: SecurityTokenException   The issuer of the token is not a trusted issuer"  title="SharePoint And ADFS: SecurityTokenException   The issuer of the token is not a trusted issuer" /></a></div>
<script type="text/javascript"><!--
wpa2a.script_load();
//--></script>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.sharepointsecurity.com/sharepoint/sharepoint-security/sharepoint-and-adfs-securitytokenexception-the-issuer-of-the-token-is-not-a-trusted-issuer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	 
	<item>
		<title>ADFS Not Resolving Active Directory Security Groups In SharePoint</title>
		<link>http://www.sharepointsecurity.com/sharepoint/sharepoint-security/adfs-not-resolving-active-directory-security-groups-in-sharepoint/</link>
		<comments>http://www.sharepointsecurity.com/sharepoint/sharepoint-security/adfs-not-resolving-active-directory-security-groups-in-sharepoint/#comments</comments>
		<pubDate>Mon, 05 Mar 2012 16:20:35 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Active Directory Federation Services]]></category>
		<category><![CDATA[SharePoint Security]]></category>
		<category><![CDATA[access]]></category>
		<category><![CDATA[account]]></category>
		<category><![CDATA[AD]]></category>
		<category><![CDATA[ADFS]]></category>
		<category><![CDATA[attributes]]></category>
		<category><![CDATA[CA]]></category>
		<category><![CDATA[certificate]]></category>
		<category><![CDATA[certificates]]></category>
		<category><![CDATA[Claims]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[correct]]></category>
		<category><![CDATA[Cryptography]]></category>
		<category><![CDATA[CT]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[description]]></category>
		<category><![CDATA[director]]></category>
		<category><![CDATA[directory]]></category>
		<category><![CDATA[display]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[domain]]></category>
		<category><![CDATA[entity]]></category>
		<category><![CDATA[environment]]></category>
		<category><![CDATA[EV]]></category>
		<category><![CDATA[Federation]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[group]]></category>
		<category><![CDATA[groups]]></category>
		<category><![CDATA[HR]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[ID]]></category>
		<category><![CDATA[identifier]]></category>
		<category><![CDATA[Identity]]></category>
		<category><![CDATA[incoming]]></category>
		<category><![CDATA[issue]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[manage]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[mapping]]></category>
		<category><![CDATA[members]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[new-object]]></category>
		<category><![CDATA[OM]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[path]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[people]]></category>
		<category><![CDATA[picker]]></category>
		<category><![CDATA[point]]></category>
		<category><![CDATA[port]]></category>
		<category><![CDATA[provider]]></category>
		<category><![CDATA[proxy server]]></category>
		<category><![CDATA[role]]></category>
		<category><![CDATA[sec]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[select]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[SPClaim]]></category>
		<category><![CDATA[steps]]></category>
		<category><![CDATA[store]]></category>
		<category><![CDATA[TC]]></category>
		<category><![CDATA[Token]]></category>
		<category><![CDATA[trusted]]></category>
		<category><![CDATA[type]]></category>
		<category><![CDATA[URI]]></category>
		<category><![CDATA[url]]></category>
		<category><![CDATA[user]]></category>
		<category><![CDATA[window]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.sharepointsecurity.com/?p=6672</guid>
		<description><![CDATA[I ran into this issue really recently working at a client with a new, pretty basic ADFS environment that was acting as the identity provider, through an ADFS proxy server relay. I couldn't wrap my head around why it wasn't working, the groups themselves were resolving correctly, and even showing up in the identity data sources in [...]
Related posts:<ol>
<li><a href='http://www.sharepointsecurity.com/sharepoint/sharepoint-security/sharepoint-and-adfs-securitytokenexception-the-issuer-of-the-token-is-not-a-trusted-issuer/' rel='bookmark' title='SharePoint And ADFS: SecurityTokenException &#8211; The issuer of the token is not a trusted issuer'>SharePoint And ADFS: SecurityTokenException &#8211; The issuer of the token is not a trusted issuer</a></li>
<li><a href='http://www.sharepointsecurity.com/sharepoint/claims-based-authentication/sharepoint-claims-based-authentication-architectures-explained-part-7-transforming-identity-in-sharepoint/' rel='bookmark' title='SharePoint Claims Based Authentication Architectures Explained – Part 7 – Transforming Identity In SharePoint'>SharePoint Claims Based Authentication Architectures Explained – Part 7 – Transforming Identity In SharePoint</a></li>
<li><a href='http://www.sharepointsecurity.com/sharepoint/claims-based-authentication/sharepoint-federated-identity-process-part-3-exploring-the-sharepoint-federated-identity-solution/' rel='bookmark' title='SharePoint Federated Identity Process &#8211; Part 3 &#8211; Exploring the SharePoint Federated Identity Solution'>SharePoint Federated Identity Process &#8211; Part 3 &#8211; Exploring the SharePoint Federated Identity Solution</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I ran into this issue really recently working at a client with a new, pretty basic ADFS environment that was acting as the identity provider, through an ADFS proxy server relay. I couldn't wrap my head around why it wasn't working, the groups themselves were resolving correctly, and even showing up in the identity data sources in the people picker. However, members of the AD securitygroup, (NOT the SharePoint group) were still being denied access to the SharePoint site.</p>
<p>To fix this issue follow these steps:</p>
<ol>
<ol>
<li>Open the federation server box.</li>
<li>Open the ADFS management console.</li>
<li>Edit the claim rules for the relaying party trust</li>
<li>Select the tab Issuance Transform Rules</li>
<li>Edit the Send LDAP Attributes as Claims</li>
<ol>
<li>This should have:</li>
<li>Claim Rule Name : Pass-through LDAP Claims</li>
<li>Attribute Store : Active Directory</li>
<li>Set: Token Groups unqualified names (Don't Use: Token Groups - Qualified by domain name) | Outgoing ClaimType: Role</li>
<li>Set: User-Principal-Name | Outgoing Claim Type : UPN</li>
</ol>
<li>Open the SharePoint management shell, run the following PowerShell script to create the issuer. If you have an issuer already made, remove it or execute the coordinating update commands. Make sure you replace the <strong>$certPath</strong>, <strong>$realm</strong>, and any of the string literals within <strong>$ap</strong>.</li>
</ol>
</ol>
<div class="igBar"><span id="lcode-5"><a href="#" onclick="javascript:showPlainTxt('code-5'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-5">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$certPath = “your certification path”</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$cert = New-Object System.<span style="">Security</span>.<span style="">Cryptography</span>.<span style="">X509Certificates</span>.<span style="">X509Certificate2</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"$certPath"</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$map1 = New-SPClaimTypeMapping <span style="color:#CC0000;">"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"</span> -IncomingClaimTypeDisplayName <span style="color:#CC0000;">"EmailAddress"</span> -SameAsIncoming</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$map2 = New-SPClaimTypeMapping <span style="color:#CC0000;">"http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"</span> -IncomingClaimTypeDisplayName <span style="color:#CC0000;">"Login"</span> –SameAsIncoming</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$map3 = New-SPClaimTypeMapping <span style="color:#CC0000;">"http://schemas.microsoft.com/ws/2008/06/identity/claims/role"</span> -IncomingClaimTypeDisplayName <span style="color:#CC0000;">"Role"</span> –SameAsIncoming</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$map4 = New-SPClaimTypeMapping <span style="color:#CC0000;">"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"</span> -IncomingClaimTypeDisplayName <span style="color:#CC0000;">"Account ID"</span> –SameAsIncoming</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$realm = <span style="color:#CC0000;">"urn:"</span> + $env:ComputerName + <span style="color:#CC0000;">":adfs"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$signinurl = <span style="color:#CC0000;">"https://yoursigninurl"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$ap = New-SPTrustedIdentityTokenIssuer -Name <span style="color:#CC0000;">"ADFS"</span> -Description “ADFS <span style="color:#800000;color:#800000;">2</span>.<span style="color:#800000;color:#800000;">0</span>” -Realm $realm -ImportTrustCertificate $cert -ClaimsMappings $map1, $map2, $map3, $map4 -SignInUrl $signinurl -IdentifierClaim $map1.<span style="">InputClaimType</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>If you are curious about the way to update, rather than create a new issuer, you can use the following. In the above, you may or may not need all those assertion mappings depending on how your trusted relay issuance rule setup:</p>
<div class="igBar"><span id="lcode-6"><a href="#" onclick="javascript:showPlainTxt('code-6'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-6">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$issuer = Get-SPTrustedIdentityTokenIssuer</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$issuer.<span style="">ClaimTypes</span>.<span style="">Add</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"http://schemas.microsoft.com/ws/2008/06/identity/claims/role"</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$map=New-SPClaimTypeMapping <span style="color:#CC0000;">"http://schemas.microsoft.com/ws/2008/06/identity/claims/role"</span> -IncomingClaimTypeDisplayName <span style="color:#CC0000;">"Role"</span> –SameAsIncoming</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$issuer.<span style="">AddClaimTypeInformation</span><span style="color:#006600; font-weight:bold;">&#40;</span>$map<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$issuer.<span style="">Update</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Now you HAVE to apply KB hotfix 2536591 located here: <a href="http://support.microsoft.com/kb/2536591/en-us">http://support.microsoft.com/kb/2536591/en-us</a></p>
<p>Boom! Groups will work.</p>
<div class="addtoany_share_save_container"><div class="a2a_kit a2a_target addtoany_list" id="wpa2a_2"><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.sharepointsecurity.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="share save 171 16 ADFS Not Resolving Active Directory Security Groups In SharePoint"  title="ADFS Not Resolving Active Directory Security Groups In SharePoint" /></a></div></div>]]></content:encoded>
			<wfw:commentRss>http://www.sharepointsecurity.com/sharepoint/sharepoint-security/adfs-not-resolving-active-directory-security-groups-in-sharepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	 
	<item>
		<title>How To Wire A SharePoint List To A Telerik RadScheduler</title>
		<link>http://www.sharepointsecurity.com/sharepoint/sharepoint-development/how-to-wire-a-sharepoint-list-to-a-telerik-radscheduler/</link>
		<comments>http://www.sharepointsecurity.com/sharepoint/sharepoint-development/how-to-wire-a-sharepoint-list-to-a-telerik-radscheduler/#comments</comments>
		<pubDate>Thu, 23 Feb 2012 21:07:33 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[SharePoint Development]]></category>
		<category><![CDATA[AD]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.sharepointsecurity.com/?p=6520</guid>
		<description><![CDATA[Wiring a List of SPListItems to a Telerik RadScheduler is pretty easy. The important thing to remember when working with a RadScheduler is that it expects a list of Appointment objects, how you hydrate an Appointment object is pretty much up to you. Were it gets kinda weird is when you have the collection, the [...]
Related posts:<ol>
<li><a href='http://www.sharepointsecurity.com/sharepoint/sharepoint-development/using-regular-expressions-for-sharepoint-list-collection-queries/' rel='bookmark' title='Using Regular Expressions For SharePoint List Collection Queries'>Using Regular Expressions For SharePoint List Collection Queries</a></li>
<li><a href='http://www.sharepointsecurity.com/sharepoint/sharepoint-development/using-telerik-radupload-control-with-sharepoint-document-libraries-asp-net/' rel='bookmark' title='Using Telerik RadUpload Control with SharePoint Document Libraries – ASP.NET'>Using Telerik RadUpload Control with SharePoint Document Libraries – ASP.NET</a></li>
<li><a href='http://www.sharepointsecurity.com/sharepoint/best-practice-don%e2%80%99t-iterate-splistitems-for-iqueryable-support/' rel='bookmark' title='Best Practice: Don’t Iterate SPListItems for IQueryable Support'>Best Practice: Don’t Iterate SPListItems for IQueryable Support</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Wiring a List of <strong>SPListItem</strong>s to a <strong>Telerik RadScheduler</strong> is pretty easy. The important thing to remember when working with a <strong>RadScheduler</strong> is that it expects a list of <strong>Appointment</strong> objects, how you hydrate an <strong>Appointment</strong> object is pretty much up to you. Were it gets kinda weird is when you have the collection, the <strong>RadScheduler</strong>.Provider expects a <strong>SchedulerProviderBase</strong> super class. Either way it’s not too bad.</p>
<p>So let’s assume I am building the <strong>RadScheduler</strong> object in something like <strong>CreateChildControls</strong> like so:</p>
<div class="igBar"><span id="lcsharp-12"><a href="#" onclick="javascript:showPlainTxt('csharp-12'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-12">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">RadScheduler theScheduler = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> RadScheduler<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">theScheduler.<span style="color: #0000FF;">TimelineView</span>.<span style="color: #0000FF;">UserSelectable</span> = <span style="color: #0600FF;">true</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">theScheduler.<span style="color: #0000FF;">OverflowBehavior</span> = OverflowBehavior.<span style="color: #0000FF;">Expand</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">theScheduler.<span style="color: #0000FF;">SelectedView</span> = SchedulerViewType.<span style="color: #0000FF;">MonthView</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>In the above I am missing the <strong>RadScheduler.Provider</strong> property, so gotta populate that. In this example, I am converting the <strong>SPList</strong> to a dataset, but you could iterate the items and return the values accordingly taking into account type casting. So I end up in a dataset format with something like this:</p>
<div class="igBar"><span id="lcsharp-13"><a href="#" onclick="javascript:showPlainTxt('csharp-13'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-13">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">tempCollection.<span style="color: #0000FF;">AddRange</span><span style="color: #000000;">&#40;</span>from DataRow row <span style="color: #0600FF;">in</span> masterTable.<span style="color: #0000FF;">Rows</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">select <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Appointment</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Start = DateTime.<span style="color: #0000FF;">Parse</span><span style="color: #000000;">&#40;</span>row<span style="color: #000000;">&#91;</span>startFieldName<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>, End = DateTime.<span style="color: #0000FF;">Parse</span><span style="color: #000000;">&#40;</span>row<span style="color: #000000;">&#91;</span>endFieldName<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>, ID = Guid.<span style="color: #0000FF;">NewGuid</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>, Subject = StripTagsRegex<span style="color: #000000;">&#40;</span>row<span style="color: #000000;">&#91;</span>subjectFieldName<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>, RecurrenceState = state</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">string</span> StripTagsRegex<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> source<span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">return</span> Regex.<span style="color: #0000FF;">Replace</span><span style="color: #000000;">&#40;</span>source, <span style="color: #808080;">""</span>, <span style="color: #FF0000;">string</span>.<span style="color: #0000FF;">Empty</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>You could easily just do the <strong>SPListItem</strong>s:</p>
<div class="igBar"><span id="lcsharp-14"><a href="#" onclick="javascript:showPlainTxt('csharp-14'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-14">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">tempCollection.<span style="color: #0000FF;">AddRange</span><span style="color: #000000;">&#40;</span>from SPListItem row <span style="color: #0600FF;">in</span> list.<span style="color: #0000FF;">Items</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">select <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Appointment</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Start = DateTime.<span style="color: #0000FF;">Parse</span><span style="color: #000000;">&#40;</span>row<span style="color: #000000;">&#91;</span>startFieldName<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>, End = DateTime.<span style="color: #0000FF;">Parse</span><span style="color: #000000;">&#40;</span>row<span style="color: #000000;">&#91;</span>endFieldName<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>, ID = Guid.<span style="color: #0000FF;">NewGuid</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>, Subject = StripTagsRegex<span style="color: #000000;">&#40;</span>row<span style="color: #000000;">&#91;</span>subjectFieldName<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>, RecurrenceState = state</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Once you have the collection of Appointments, you have to make the SchedulerProviderBase superclass. This looks like this:</p>
<div class="igBar"><span id="lcsharp-15"><a href="#" onclick="javascript:showPlainTxt('csharp-15'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-15">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> ListSchedulerProvider : SchedulerProviderBase</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">private</span> <span style="color: #0600FF;">readonly</span> List _listItemCollection;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">public</span> ListSchedulerProvider<span style="color: #000000;">&#40;</span>List collection<span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">_listItemCollection = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> List<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">_listItemCollection = collection;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">public</span> <span style="color: #0600FF;">override</span> IEnumerable GetAppointments<span style="color: #000000;">&#40;</span>RadScheduler owner<span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">return</span> _listItemCollection;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">public</span> <span style="color: #0600FF;">override</span> IDictionary&lt;ResourceType, IEnumerable&lt;Resource&gt;&gt; GetResources<span style="color: #000000;">&#40;</span>ISchedulerInfo schedulerInfo<span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">return</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Dictionary&lt;ResourceType, IEnumerable&lt;Resource&gt;&gt;<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Then coordinate this class with scheduler <strong>Provider</strong> property:</p>
<div class="igBar"><span id="lcsharp-16"><a href="#" onclick="javascript:showPlainTxt('csharp-16'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-16">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">RadScheduler.<span style="color: #0000FF;">Provider</span> = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> ListSchedulerProvider<span style="color: #000000;">&#40;</span>“Your Typed Appointment Collection”<span style="color: #000000;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<div class="addtoany_share_save_container"><div class="a2a_kit a2a_target addtoany_list" id="wpa2a_3"><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.sharepointsecurity.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="share save 171 16 How To Wire A SharePoint List To A Telerik RadScheduler"  title="How To Wire A SharePoint List To A Telerik RadScheduler" /></a></div></div>]]></content:encoded>
			<wfw:commentRss>http://www.sharepointsecurity.com/sharepoint/sharepoint-development/how-to-wire-a-sharepoint-list-to-a-telerik-radscheduler/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	 
	<item>
		<title>ADFS Timeouts &#8211; Keep Above 10 Minutes When Testing</title>
		<link>http://www.sharepointsecurity.com/sharepoint/active-directory-federation-services/adfs-timeouts-keep-above-10-minutes-when-testing/</link>
		<comments>http://www.sharepointsecurity.com/sharepoint/active-directory-federation-services/adfs-timeouts-keep-above-10-minutes-when-testing/#comments</comments>
		<pubDate>Thu, 23 Feb 2012 16:49:14 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Active Directory Federation Services]]></category>
		<category><![CDATA[Claims Based Authentication]]></category>
		<category><![CDATA[AD]]></category>
		<category><![CDATA[ADFS]]></category>
		<category><![CDATA[EV]]></category>
		<category><![CDATA[time]]></category>

		<guid isPermaLink="false">http://www.sharepointsecurity.com/?p=6487</guid>
		<description><![CDATA[I ran into this issue very recently when helping with an ADFS environment setup that was using a federation proxy to an internal federation service farm. The timeout desire was to be 15 minutes, after a user would have to re-authenticate to the ADFS box. To expedite the testing, we were attempting to set short [...]
Related posts:<ol>
<li><a href='http://www.sharepointsecurity.com/sharepoint/sharepoint-development/testing-whether-adfs-user-is-authenticated/' rel='bookmark' title='Testing Whether ADFS User Is Authenticated'>Testing Whether ADFS User Is Authenticated</a></li>
<li><a href='http://www.sharepointsecurity.com/sharepoint/claims-based-authentication/what-does-adfs-v2-and-windows-identity-foundation-do/' rel='bookmark' title='SharePoint Claims Based Authentication &#8211; What does ADFS v2 And Windows Identity Foundation Do?'>SharePoint Claims Based Authentication &#8211; What does ADFS v2 And Windows Identity Foundation Do?</a></li>
<li><a href='http://www.sharepointsecurity.com/sharepoint/team-foundation-server/large-sharepoint-components-with-continuous-integration-cause-time-outs-with-automated-builds/' rel='bookmark' title='Large SharePoint Components with Continuous Integration Cause Time Outs With Automated Builds'>Large SharePoint Components with Continuous Integration Cause Time Outs With Automated Builds</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I ran into this issue very recently when helping with an ADFS environment setup that was using a federation proxy to an internal federation service farm. The timeout desire was to be 15 minutes, after a user would have to re-authenticate to the ADFS box. To expedite the testing, we were attempting to set short intervals of timeouts, 1-2 minutes…up to 5, however nothing was timing out fumbling the proof of concept. Over around 8 minutes was timing out though. Furthermore, there was never a concrete timeout; there was always some level of skew.</p>
<p>This behavior seemed erratic. The problem is ADFS has a <strong>Cache Scavenge</strong> interval, which is the process for purging out-of-date cache records from the client cache. If your timeouts are configured in a pretty orthodox way, for example a ten minute timeout:</p>
<p>On the SharePoint box:</p>
<div class="igBar"><span id="lcode-19"><a href="#" onclick="javascript:showPlainTxt('code-19'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-19">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$sts = Get-SPSecurityTokenServiceConfig</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$sts.<span style="">LogonTokenCacheExpirationWindow</span> = <span style="color:#006600; font-weight:bold;">&#40;</span>New-TimeSpan –minutes <span style="color:#800000;color:#800000;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$sts.<span style="">Update</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Iisreset </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>And on the ADFS box:</p>
<div class="igBar"><span id="lcode-20"><a href="#" onclick="javascript:showPlainTxt('code-20'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-20">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Set-ADFSRelyingPartyTrust -TargetName “Relying Party Common Name” -TokenLifeTime <span style="color:#800000;color:#800000;">10</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>But you have your <strong>TokenLifeTime</strong> set to a ridiculously low value (it always has to be above the <strong>LoginTokenCacheExpirationWindow </strong>btw) such as two, resulting in a difference of a one minute timeout; the <strong>Cache Scavenge</strong> will never fire. Thus the issued ticket will be considered valid.</p>
<p>Take away is always just test with something like 10 minutes and deal with the wait time for verification.</p>
<div class="addtoany_share_save_container"><div class="a2a_kit a2a_target addtoany_list" id="wpa2a_4"><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.sharepointsecurity.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="share save 171 16 ADFS Timeouts   Keep Above 10 Minutes When Testing"  title="ADFS Timeouts   Keep Above 10 Minutes When Testing" /></a></div></div>]]></content:encoded>
			<wfw:commentRss>http://www.sharepointsecurity.com/sharepoint/active-directory-federation-services/adfs-timeouts-keep-above-10-minutes-when-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	 
	<item>
		<title>Adding A ProgressBar Column To A RadGrid In A SharePoint WebPart</title>
		<link>http://www.sharepointsecurity.com/sharepoint/sharepoint-development/adding-a-progressbar-column-to-a-radgrid-in-a-sharepoint-webpart/</link>
		<comments>http://www.sharepointsecurity.com/sharepoint/sharepoint-development/adding-a-progressbar-column-to-a-radgrid-in-a-sharepoint-webpart/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 17:54:05 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[SharePoint Development]]></category>
		<category><![CDATA[AD]]></category>
		<category><![CDATA[ID]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint WebPart]]></category>
		<category><![CDATA[WebPart]]></category>

		<guid isPermaLink="false">http://www.sharepointsecurity.com/?p=6354</guid>
		<description><![CDATA[I really thought there would be a tutorial on this on the Telerik website but I couldn’t find anything relevant. In this post, I am going to show you how to add a progress bar column to a RadGrid or RadGridView. So, my goal is to have something like this: I am just setting the [...]
Related posts:<ol>
<li><a href='http://www.sharepointsecurity.com/sharepoint/infopath-forms-development/developing-a-sharepoint-form-webpart-part-2-declare-variables-assign-controls-and-set-up-exception-management/' rel='bookmark' title='Developing A SharePoint Form WebPart &#8211; Part 2 &#8211; Declare Variables, Assign Controls, And Set up Exception Management'>Developing A SharePoint Form WebPart &#8211; Part 2 &#8211; Declare Variables, Assign Controls, And Set up Exception Management</a></li>
<li><a href='http://www.sharepointsecurity.com/sharepoint/sharepoint-development/determine-if-list-column-exists-in-c/' rel='bookmark' title='Determine If SharePoint List Column Exists In C#'>Determine If SharePoint List Column Exists In C#</a></li>
<li><a href='http://www.sharepointsecurity.com/sharepoint/sharepoint-development/move-list-sharepoint-webpart/' rel='bookmark' title='Move List SharePoint WebPart'>Move List SharePoint WebPart</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I really thought there would be a tutorial on this on the Telerik website but I couldn’t find anything relevant. In this post, I am going to show you how to add a progress bar column to a<strong> RadGrid</strong> or <strong>RadGridView</strong>. So, my goal is to have something like this:</p>
<p><a href="http://www.sharepointsecurity.com/wp-content/uploads/2012/02/RadGrid_WebPart.png" rel="thumbnail"><img class="aligncenter size-full wp-image-6355" title="RadGrid_WebPart" src="http://www.sharepointsecurity.com/wp-content/uploads/2012/02/RadGrid_WebPart.png" alt="RadGrid WebPart Adding A ProgressBar Column To A RadGrid In A SharePoint WebPart" width="277" height="171" /></a></p>
<p>I am just setting the value in a master/detail view in a straight forward <strong>TextBox</strong>. I am not using AJAX or anything so some of the wiring to maintain values is simply to deal with PostBacks. Just looks like this:</p>
<p><a href="http://www.sharepointsecurity.com/wp-content/uploads/2012/02/Update_Percentage.png" rel="thumbnail"><img class="aligncenter size-medium wp-image-6356" title="Update_Percentage" src="http://www.sharepointsecurity.com/wp-content/uploads/2012/02/Update_Percentage-300x57.png" alt="Update Percentage 300x57 Adding A ProgressBar Column To A RadGrid In A SharePoint WebPart" width="300" height="57" /></a></p>
<p>Firstly, I am going to use the one from CodeProject, which is used in a lot of apps, for example the SnapStream project. You can view the SVN version here:</p>
<p><a href="http://source.snapstream.com/repos/WebAdministration/controls/ProgressBar.cs">http://source.snapstream.com/repos/WebAdministration/controls/ProgressBar.cs</a></p>
<p>Blah Blah blah here is the code.</p>
<p>The <strong>ITemplate</strong> to wire up to the custom column:</p>
<div class="igBar"><span id="lcsharp-26"><a href="#" onclick="javascript:showPlainTxt('csharp-26'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-26">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> InstantiateIn<span style="color: #000000;">&#40;</span>Control container<span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">UpdatePanel panel = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> UpdatePanel<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">ProgressBar bar = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> ProgressBar<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">bar.<span style="color: #0000FF;">ID</span> = <span style="color: #808080;">"bar"</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">bar.<span style="color: #0000FF;">ForeColor</span> = Color.<span style="color: #0000FF;">Black</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">bar.<span style="color: #0000FF;">Width</span> = Unit.<span style="color: #0000FF;">Pixel</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;color:#800000;">150</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">bar.<span style="color: #0000FF;">FillImageUrl</span> = <span style="color: #FF0000;">string</span>.<span style="color: #0000FF;">Format</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">"{0}/Supporting%20Images/bg.gif"</span>, SharePointHelpers.<span style="color: #0000FF;">SiteUrl</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">bar.<span style="color: #0000FF;">BarImageUrl</span> = <span style="color: #FF0000;">string</span>.<span style="color: #0000FF;">Format</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">"{0}/Supporting%20Images/indicator.gif"</span>, SharePointHelpers.<span style="color: #0000FF;">SiteUrl</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">bar.<span style="color: #0000FF;">Visible</span> = <span style="color: #0600FF;">true</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">bar.<span style="color: #0000FF;">Enabled</span> = <span style="color: #0600FF;">true</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">panel.<span style="color: #0000FF;">ContentTemplateContainer</span>.<span style="color: #0000FF;">Controls</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span>bar<span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">container.<span style="color: #0000FF;">Controls</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span>panel<span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>The template column to add to the grid:</p>
<div class="igBar"><span id="lcsharp-27"><a href="#" onclick="javascript:showPlainTxt('csharp-27'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-27">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">var x = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> GridTemplateColumn<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">x.<span style="color: #0000FF;">AllowFiltering</span> = <span style="color: #0600FF;">false</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">x.<span style="color: #0000FF;">HeaderText</span> = <span style="color: #808080;">"Percentage Complete"</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">x.<span style="color: #0000FF;">ItemTemplate</span> = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> ProgressBarTemplate<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">grid.<span style="color: #0000FF;">MasterTableView</span>.<span style="color: #0000FF;">Columns</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span>x<span style="color: #000000;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Wire up the data bound event:</p>
<div class="igBar"><span id="lcsharp-28"><a href="#" onclick="javascript:showPlainTxt('csharp-28'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-28">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> grid_ItemDataBound<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">object</span> sender, GridItemEventArgs e<span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">var nestedItem = e.<span style="color: #0000FF;">Item</span> <span style="color: #0600FF;">as</span> GridNestedViewItem;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>nestedItem != <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Panel panel = <span style="color: #000000;">&#40;</span>Panel<span style="color: #000000;">&#41;</span> nestedItem.<span style="color: #0000FF;">FindControl</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">"InnerContainer"</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">TextBox tbPercentage = <span style="color: #000000;">&#40;</span>TextBox<span style="color: #000000;">&#41;</span> panel.<span style="color: #0000FF;">FindControlRecursive</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">"tbPercentage"</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">tbPercentage.<span style="color: #0000FF;">Text</span> = DataBinder.<span style="color: #0000FF;">Eval</span><span style="color: #000000;">&#40;</span>e.<span style="color: #0000FF;">Item</span>.<span style="color: #0000FF;">DataItem</span>, <span style="color: #808080;">"Percentage"</span><span style="color: #000000;">&#41;</span> != <span style="color: #0600FF;">null</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">? DataBinder.<span style="color: #0000FF;">Eval</span><span style="color: #000000;">&#40;</span>e.<span style="color: #0000FF;">Item</span>.<span style="color: #0000FF;">DataItem</span>, <span style="color: #808080;">"Percentage"</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> : <span style="color: #808080;">"[None]"</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">TextBox tb = <span style="color: #000000;">&#40;</span>TextBox<span style="color: #000000;">&#41;</span> nestedItem.<span style="color: #0000FF;">FindControlRecursive</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">"tbPercentage"</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">GridDataItem parentItem = nestedItem.<span style="color: #0000FF;">ParentItem</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">ProgressBar bar = <span style="color: #000000;">&#40;</span>ProgressBar<span style="color: #000000;">&#41;</span> parentItem.<span style="color: #0000FF;">FindControlRecursive</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">"bar"</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #FF0000;">string</span> x = tb.<span style="color: #0000FF;">Text</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">bar.<span style="color: #0000FF;">Percentage</span> = Convert.<span style="color: #0000FF;">ToInt32</span><span style="color: #000000;">&#40;</span>x<span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Wire up this prerender event to the grid:</p>
<div class="igBar"><span id="lcsharp-29"><a href="#" onclick="javascript:showPlainTxt('csharp-29'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-29">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> grid_PreRender<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">object</span> sender, EventArgs e<span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">foreach</span> <span style="color: #000000;">&#40;</span>GridDataItem y <span style="color: #0600FF;">in</span> _grid.<span style="color: #0000FF;">Items</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>y.<span style="color: #0000FF;">ChildItem</span> != <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">GridNestedViewItem nestedItem = y.<span style="color: #0000FF;">ChildItem</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">TextBox tb = <span style="color: #000000;">&#40;</span>TextBox<span style="color: #000000;">&#41;</span> nestedItem.<span style="color: #0000FF;">FindControlRecursive</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">"tbPercentage"</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">ProgressBar bar = <span style="color: #000000;">&#40;</span>ProgressBar<span style="color: #000000;">&#41;</span> y.<span style="color: #0000FF;">FindControlRecursive</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">"bar"</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #FF0000;">string</span> x = tb.<span style="color: #0000FF;">Text</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">bar.<span style="color: #0000FF;">Percentage</span> = Convert.<span style="color: #0000FF;">ToInt32</span><span style="color: #000000;">&#40;</span>x<span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Wire up the item created event:</p>
<div class="igBar"><span id="lcsharp-30"><a href="#" onclick="javascript:showPlainTxt('csharp-30'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-30">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> grid_ItemCreated<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">object</span> sender, GridItemEventArgs e<span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">var item = e.<span style="color: #0000FF;">Item</span> <span style="color: #0600FF;">as</span> GridDataItem;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>item != <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>item.<span style="color: #0000FF;">ChildItem</span> != <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">GridNestedViewItem nestedItem = item.<span style="color: #0000FF;">ChildItem</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">TextBox tb = <span style="color: #000000;">&#40;</span>TextBox<span style="color: #000000;">&#41;</span> nestedItem.<span style="color: #0000FF;">FindControlRecursive</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">"tbPercentage"</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">ProgressBar bar = <span style="color: #000000;">&#40;</span>ProgressBar<span style="color: #000000;">&#41;</span> item.<span style="color: #0000FF;">FindControlRecursive</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">"bar"</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #FF0000;">string</span> x = tb.<span style="color: #0000FF;">Text</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">bar.<span style="color: #0000FF;">Percentage</span> = Convert.<span style="color: #0000FF;">ToInt32</span><span style="color: #000000;">&#40;</span>x<span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Like I said depending on the technology you are using you might not need like half of those events.</p>
<div class="addtoany_share_save_container"><div class="a2a_kit a2a_target addtoany_list" id="wpa2a_5"><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.sharepointsecurity.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="share save 171 16 Adding A ProgressBar Column To A RadGrid In A SharePoint WebPart"  title="Adding A ProgressBar Column To A RadGrid In A SharePoint WebPart" /></a></div></div>]]></content:encoded>
			<wfw:commentRss>http://www.sharepointsecurity.com/sharepoint/sharepoint-development/adding-a-progressbar-column-to-a-radgrid-in-a-sharepoint-webpart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

