<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Jacob Adams</title>
        <link>http://geekswithblogs.net/jacobladams/Default.aspx</link>
        <description> </description>
        <language>en-US</language>
        <copyright>Jacob L. Adams</copyright>
        <managingEditor>jacobladams@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>Jacob Adams</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/jacobladams/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Open SharePoint Alerts Page Using JavaScript</title>
            <link>http://geekswithblogs.net/jacobladams/archive/2013/03/01/open-sharepoint-alerts-page-using-javascript.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/jacobladams/archive/2013/03/01/open-sharepoint-alerts-page-using-javascript.aspx'&gt;http://geekswithblogs.net/jacobladams/archive/2013/03/01/open-sharepoint-alerts-page-using-javascript.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The page to set up alerts for a SharePoint list requires the list ID to be passed in as a query string. The follow code will get the ID for the list with a specific title. It will  then open the alerts setup page for that list in a SharePoint dialog box.&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; context = &lt;span class="kwrd"&gt;new&lt;/span&gt; SP.ClientContext.get_current();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; listTitle = &lt;span class="str"&gt;'TitleOfYourList'&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; list = context.get_web().get_lists().getByTitle(listTitle); &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;context.load(list);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;context.executeQueryAsync(&lt;span class="kwrd"&gt;function&lt;/span&gt; (sender, args) {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; id = list.get_id();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    NewItem2(e, &lt;span class="str"&gt;'http://yoursite/_layouts/SubNew.aspx?List='&lt;/span&gt; +id);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;});&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt; &lt;img src="http://geekswithblogs.net/jacobladams/aggbug/152277.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jacob L. Adams</dc:creator>
            <guid>http://geekswithblogs.net/jacobladams/archive/2013/03/01/open-sharepoint-alerts-page-using-javascript.aspx</guid>
            <pubDate>Fri, 01 Mar 2013 20:04:42 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jacobladams/comments/152277.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jacobladams/archive/2013/03/01/open-sharepoint-alerts-page-using-javascript.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jacobladams/comments/commentRss/152277.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Credentials Not Passed From SharePoint WebPart to WCF Service</title>
            <link>http://geekswithblogs.net/jacobladams/archive/2012/11/14/credentials-not-passed-from-sharepoint-webpart-to-wcf-service.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/jacobladams/archive/2012/11/14/credentials-not-passed-from-sharepoint-webpart-to-wcf-service.aspx'&gt;http://geekswithblogs.net/jacobladams/archive/2012/11/14/credentials-not-passed-from-sharepoint-webpart-to-wcf-service.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I have spent several hours trying to resolve this problem, so I wanted to share my findings in case someone else might have the same problem.&lt;/p&gt;  &lt;p&gt;I had a web part which was calling out to a WCF service on another server to get some data. The code I had was essentially&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.ServiceModel;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.ServiceModel.Channels;&lt;/pre&gt;

  &lt;pre class="alt"&gt;...&lt;/pre&gt;

  &lt;pre&gt;var binding = &lt;span class="kwrd"&gt;new&lt;/span&gt; CustomBinding( &lt;span class="kwrd"&gt;new&lt;/span&gt; HttpTransportBindingElement { AuthenticationScheme = System.Net.AuthenticationSchemes.Negotiate } );&lt;/pre&gt;

  &lt;pre class="alt"&gt;var endpoint = &lt;span class="kwrd"&gt;new&lt;/span&gt; EndpointAddress(&lt;span class="kwrd"&gt;new&lt;/span&gt; Uri(&lt;span class="str"&gt;"http://someotherserver/someotherservice.svc"&lt;/span&gt;));&lt;/pre&gt;

  &lt;pre&gt;var someOtherService = &lt;span class="kwrd"&gt;new&lt;/span&gt; SomeOtherServiceClient(binding, endpoint);&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; result = someOtherService.SomeServiceMethod(); &lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[







.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;p&gt;This code would run fine on my local instance of SharePoint 2010 (Windows 7 64-bit). However, when I would deploy it to the testing environment, I would get a yellow screen of death  with the following message:&lt;/p&gt;

&lt;p&gt;The HTTP request is unauthorized with client authentication scheme 'Negotiate'. The authentication header received from the server was 'Negotiate,NTLM'.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://gwb.blob.core.windows.net/jacobladams/Windows-Live-Writer/99c7e8cac977_FD09/ysod_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline-block; border-top: 0px; border-right: 0px; padding-top: 0px" title="ysod" border="0" alt="ysod" src="http://gwb.blob.core.windows.net/jacobladams/Windows-Live-Writer/99c7e8cac977_FD09/ysod_thumb.png" width="667" height="369" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I then went through the usual checklist of Windows Authentication problems:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Check WCF bindings to make sure authentication is set correctly&lt;/li&gt;

  &lt;li&gt;Check IIS to make sure Windows Authentication is enabled and anonymous authentication was disabled.&lt;/li&gt;

  &lt;li&gt;Check to make sure the SharePoint server trusted the server hosting the WCF service&lt;/li&gt;

  &lt;li&gt;Verify that the account that the IIS application pool is running under has access to the other server&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I then spend lot of time digging into really obscure IIS, machine.config, and trust settings (as well of lots of time on Google and StackOverflow). Eventually I stumbled upon &lt;a href="http://mindsharpblogs.com/todd/archive/2005/05/03/467.html" target="_blank"&gt;a blog post&lt;/a&gt; by Todd Bleeker describing how to run code under the application pool identity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wait, what? The code is not already running under application pool identity?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another quick Google search led me to &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsecurity.runwithelevatedprivileges(v=office.14).aspx" target="_blank"&gt;an MSDN page&lt;/a&gt; that imply that SharePoint indeed does not run under the app pool credentials by default. Instead &lt;strong&gt;SPSecurity.RunWithElevatedPrivileges &lt;/strong&gt;is needed to run code under the app pool identity. Therefore, changing my code to the following worked seamlessly&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.ServiceModel;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.ServiceModel.Channels;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.SharePoint;&lt;/pre&gt;

  &lt;pre&gt;...&lt;/pre&gt;

  &lt;pre class="alt"&gt;var binding = &lt;span class="kwrd"&gt;new&lt;/span&gt; CustomBinding( &lt;span class="kwrd"&gt;new&lt;/span&gt; HttpTransportBindingElement { AuthenticationScheme = System.Net.AuthenticationSchemes.Negotiate } );&lt;/pre&gt;

  &lt;pre&gt;var endpoint = &lt;span class="kwrd"&gt;new&lt;/span&gt; EndpointAddress(&lt;span class="kwrd"&gt;new&lt;/span&gt; Uri(&lt;span class="str"&gt;"http://someotherserver/someotherservice.svc"&lt;/span&gt;));&lt;/pre&gt;

  &lt;pre class="alt"&gt;var someOtherService = &lt;span class="kwrd"&gt;new&lt;/span&gt; SomeOtherServiceClient(binding, endpoint);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; result;&lt;/pre&gt;

  &lt;pre class="alt"&gt;SPSecurity.RunWithElevatedPrivileges(()=&amp;gt; &lt;/pre&gt;

  &lt;pre&gt;{&lt;/pre&gt;

  &lt;pre class="alt"&gt;    result = someOtherService.SomeServiceMethod(); &lt;/pre&gt;

  &lt;pre&gt;});&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt; &lt;img src="http://geekswithblogs.net/jacobladams/aggbug/151253.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jacob L. Adams</dc:creator>
            <guid>http://geekswithblogs.net/jacobladams/archive/2012/11/14/credentials-not-passed-from-sharepoint-webpart-to-wcf-service.aspx</guid>
            <pubDate>Wed, 14 Nov 2012 15:56:01 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jacobladams/comments/151253.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jacobladams/archive/2012/11/14/credentials-not-passed-from-sharepoint-webpart-to-wcf-service.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jacobladams/comments/commentRss/151253.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>