Home > All Technical Articles, SharePoint > Configuring Facebook Authentication in SharePoint 2010

Configuring Facebook Authentication in SharePoint 2010

I got a task to configure Facebook Authentication couple of days back. I explored couple of blogs like PointBridge and Osnapz , they are good blog posts it give you an idea how to do that but overall i didn’t find anything like a step by step guide for those users who are doing it first time. Also when i started configuring Facebook Authentication i came across several issues which serves a lot of time and eventually my whole day was spent doing that. Therefore, i thought to make a blog entry which provides Step to Step guide for configuring Facebook Authentication in SharePoint 2010.

Following are the steps to configure Facebook Authentication for SharePoint sites.

Step 1: Download and Install Components

  1. Download and Install Windows Identity Framework SDK from http://www.microsoft.com/download/en/details.aspx?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3a+MicrosoftDownloadCenter+(Microsoft+Download+Center)&utm_content=Google+Reader&id=4451
  2. Download Json.Net from
    http://json.codeplex.com/

Step 2: Create a new ASP.Net website

  1. Open Visual Studio and click on File> New Website
  2. Specify Website Name and path to the folder where you want to store the website and click on OK
  3. It will create a new Website.
  4. Now associate a certificate with this Website and enable SSL.
  5. Open IIS Manager by typing inetmgr from the run option in windows OS.
  6. Open Server Certificates and click on Create Self-Signed Certificate.
  7.  

     

  8. Specify certificate friendly name, click OK.
  9.  

     

  10. Certificate will be created. Now associate this certificate to your Website
  11. Right click on the Server in IIS and click on Add Website. Specify Site Name and Physical Path, Select Port and click on Ok. Your website will be hosted on IIS.
  12. Select Website and click on Bindings from the left Panel.
  13. Click on Add and select the type ‘Https’ and specify any port by default it uses 443 but you can assign any other port as well. Select certificate you just created and click OK.
  14. Now the server certificate has been associated with your website.
  15. Export this certificate and save it somewhere in your system. We need this when running power shell scripts.
  16. Now Open Visual Studio and change the Sever settings in the Property Pages of the website.
  17. Right click on your website and click on Property Pages
  18. Go to the Startup Options and select Use custom server option and specify the Website URL that is hosted on IIS (Use SSL one).
  19. Now navigate to your website and test it should be in working state and there should not be any issue.
  20.  

 

Step 3: Create an STS Site from ASP.Net website

 

  1. Go to the Visual Studio and right click on the Website project and click on Add STS Reference
  2. It will pop up a Wizard window just click Next.
  3. In the next window select “Create a New STS Project in the current Solution”.
  4. Click on Finish.
  5. You will notice a new Website will be added in the solution.
  6. Now Open the IIS Manager and change the physical path to the newly STS website.
  7. Just click on Website in the IIS Manager
  8. Click on Basic Settings from the Right Panel in IIS Manager
  9. Specify new path and click OK.
  10. Now Test your STS website it should run without any issue.

Step 4: Create Application in Facebook

  1. Navigate to http://facebook.com/developers
  2. Sign in with your account
  3. Create new Application using Create New Application option
  4. Provide name
  5. Click ok It will create a new application
  6. Now Click on Edit Setting and Specify your ASP.Net site URL. We need to specify this so it will redirect it to the default.aspx after successful authentication.
  7. Note Application Id and Secret Key that we will reference in the ASP.Net code.
  8. Now we are ready to move next on Step 5.
  9.  

Step 5: Execute Scripts on Power Shell

Open SharePoint 2010 Management Shell and execute following scripts in order.

  1. $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2(“c:\yourexported_cert.cer”)
  2. $map1 = New-SPClaimTypeMapping “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/authentication” -IncomingClaimTypeDisplayName “FacebookID” –SameAsIncoming
  3. $map2 = New-SPClaimTypeMapping -IncomingClaimType “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name” -IncomingClaimTypeDisplayName “Display Name” -LocalClaimType http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname
  4. $realm = “urn:researchfacebook.com:facebook” (Specify any urn but note it)
  5. $signinurl = https://localhost:4431/Website_STS/ (Your ASP.Net website address)
  6. New-SPTrustedIdentityTokenIssuer -Name “Facebook” -Description “Facebook custom STS” -Realm $realm -ImportTrustCertificate $cert -ClaimsMappings $map1,$map2 -SignInUrl $signinurl -IdentifierClaim $map1.InputClaimType
  7. New-SPTrustedRootAuthority -Name “Facebook custom STS token signing certificate” -Certificate $cert

 

Step 6: Modify Code and Edit Configuration file

1. Create a new oAuthFacebook.cs class and add it in the App_Code folder in the Website project.
Following is a code of oAuthFacebook.cs. Change the Yellow highlighted part according to your application.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net;
using System.Collections.Specialized;
using System.IO;

///

/// Summary description for oAuthFacebook
///

public class oAuthFacebook
{
public enum Method { GET, POST };
public const string AUTHORIZE = “https://graph.facebook.com/oauth/authorize”;
public const string ACCESS_TOKEN = “https://graph.facebook.com/oauth/access_token”;
public const string CALLBACK_URL = “https://localhost:4431/Login.aspx”;

private string _consumerKey = “”;
private string _consumerSecret = “”;
private string _token = “”;

#region Properties

public string ConsumerKey
{
get
{
if (_consumerKey.Length == 0)
{
//Your application ID
_consumerKey = “000000000000000″;
}
return _consumerKey;
}
set { _consumerKey = value; }
}

public string ConsumerSecret
{
get
{
if (_consumerSecret.Length == 0)
{
//Your application secret key
_consumerSecret = “00000000000000000000000000000000″;
}
return _consumerSecret;
}
set { _consumerSecret = value; }
}

public string Token { get { return _token; } set { _token = value; } }

#endregion

///

/// Get the link to Facebook’s authorization page for this application.
///

/// The url with a valid request token, or a null string.
public string AuthorizationLinkGet()
{
return string.Format(“{0}?client_id={1}&redirect_uri={2}”, AUTHORIZE, this.ConsumerKey, CALLBACK_URL);
}

///

/// Exchange the Facebook “code” for an access token.
///

/// The oauth_token or “code” is supplied by Facebook’s authorization page following the callback.
public void AccessTokenGet(string authToken)
{
this.Token = authToken;
string accessTokenUrl = string.Format(“{0}?client_id={1}&redirect_uri={2}&client_secret={3}&code={4}”,
ACCESS_TOKEN, this.ConsumerKey, CALLBACK_URL, this.ConsumerSecret, authToken);

string response = WebRequest(Method.GET, accessTokenUrl, String.Empty);

if (response.Length > 0)
{
//Store the returned access_token
NameValueCollection qs = HttpUtility.ParseQueryString(response);

if (qs["access_token"] != null)
{
this.Token = qs["access_token"];
}
}
}

///

/// Web Request Wrapper
///

/// Http Method
/// Full url to the web resource
/// Data to post in querystring format
/// The web server response.
public string WebRequest(Method method, string url, string postData)
{

HttpWebRequest webRequest = null;
StreamWriter requestWriter = null;
string responseData = “”;

webRequest = System.Net.WebRequest.Create(url) as HttpWebRequest;
webRequest.Method = method.ToString();
webRequest.ServicePoint.Expect100Continue = false;
webRequest.UserAgent = “[You user agent]“;
webRequest.Timeout = 20000;

if (method == Method.POST)
{
webRequest.ContentType = “application/x-www-form-urlencoded”;

//POST the data.
requestWriter = new StreamWriter(webRequest.GetRequestStream());

try
{
requestWriter.Write(postData);
}
catch
{
throw;
}

finally
{
requestWriter.Close();
requestWriter = null;
}
}

responseData = WebResponseGet(webRequest);
webRequest = null;
return responseData;
}

///

/// Process the web response.
///

/// The request object.
/// The response data.
public string WebResponseGet(HttpWebRequest webRequest)
{
StreamReader responseReader = null;
string responseData = “”;

try
{
responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream());
responseData = responseReader.ReadToEnd();
}
catch
{
throw;
}
finally
{
webRequest.GetResponse().GetResponseStream().Close();
responseReader.Close();
responseReader = null;
}

return responseData;
}
}

2. In this step we will replace the existing logic in the Login.aspx for Facebook Authentication
3. Open Login.aspx and replace with following code.

using System;
using System.Web.Security;
using System.Web;
using System.Collections.Generic;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
public partial class Login : System.Web.UI.Page
{
protected void Page_Load( object sender, EventArgs e )
{
string url = string.Empty;
oAuthFacebook fbAuth = new oAuthFacebook();

if (Request["code"] == null)
{
// Response.Redirect(“http://www.google.com”);
if (Request.QueryString["ReturnUrl"] != null)
HttpContext.Current.Session.Add(“OriginalQueryString”, Request.QueryString.ToString());

//Redirect the user back to Facebook for authorization.
Response.Redirect(fbAuth.AuthorizationLinkGet());
}
else
{
//Get the access token and secret.

fbAuth.AccessTokenGet(Request["code"]);

if (fbAuth.Token.Length > 0)
{
url = “https://graph.facebook.com/me?fields=id,name,verified,picture&access_token=” + fbAuth.Token;
string json = fbAuth.WebRequest(oAuthFacebook.Method.GET, url, String.Empty);

Dictionary claims = GetClaims(json);
HttpContext.Current.Session.Add(“AuthClaims”, claims);

FormsAuthentication.SetAuthCookie(“Facebook Test”, false);
Response.Redirect(“default.aspx?” + HttpContext.Current.Session["OriginalQueryString"]);
}
}
}

private Dictionary GetClaims(string json)
{
Dictionary claims = new Dictionary();
JObject profile = JObject.Parse(json);

string userID = profile["id"].ToString().Replace(@””””, “”);
string name = profile["name"].ToString().Replace(@””””, “”);
string verified = profile["verified"].ToString().Replace(@””””, “”);
string picture = profile["picture"].ToString().Replace(@””””, “”);

if (!String.IsNullOrEmpty(userID))
claims.Add(System.IdentityModel.Claims.ClaimTypes.Authentication, userID);
if (!String.IsNullOrEmpty(name))
claims.Add(System.IdentityModel.Claims.ClaimTypes.Name, name);
if (!String.IsNullOrEmpty(picture))
claims.Add(System.IdentityModel.Claims.ClaimTypes.Webpage, picture);

return claims;
}

}

4. In the CertificateUtil.cs I have changed the logic from comparing Subject Name with Friendly Name of the certificate. This is done because I have multiple self- signed certificates installed on my server and all having a same subject name i.e. machine name. So the only unique name I found was Friendly Name, that’s why I have changed it to Friendly Name.
public static X509Certificate2 GetCertificate( StoreName name, StoreLocation location, string subjectName )
{
X509Store store = new X509Store( name, location );
X509Certificate2Collection certificates = null;
store.Open( OpenFlags.ReadOnly );

try
{
X509Certificate2 result = null;

//
// Every time we call store.Certificates property, a new collection will be returned.
//
certificates = store.Certificates;

for ( int i = 0; i < certificates.Count; i++ )
{
X509Certificate2 cert = certificates[i];

if ( cert.FriendlyName.ToLower() == subjectName.ToLower() )
{
if ( result != null )
{
throw new ApplicationException( string.Format( "There are multiple certificates for subject Name {0}", subjectName ) );
}

result = new X509Certificate2( cert );
}
}

if ( result == null )
{
throw new ApplicationException( string.Format( "No certificate was found for subject Name {0}", subjectName ) );
}

return result;
}
finally
{
if ( certificates != null )
{
for ( int i = 0; i < certificates.Count; i++ )
{
X509Certificate2 cert = certificates[i];
cert.Reset();
}
}

store.Close();
}
}
}

5. GetScope Method of CustomTokenSecurityService.cs looks like following

protected override Scope GetScope( IClaimsPrincipal principal, RequestSecurityToken request )
{
// ValidateAppliesTo( request.AppliesTo );

//
// Note: The signing certificate used by default has a Distinguished name of "CN=STSTestCert",
// and is located in the Personal certificate store of the Local Computer. Before going into production,
// ensure that you change this certificate to a valid CA-issued certificate as appropriate.
//
Scope scope = new Scope( request.AppliesTo.Uri.OriginalString, SecurityTokenServiceConfiguration.SigningCredentials );
scope.TokenEncryptionRequired = false;
//Specify the Realm name as defined in the script in PowerShell.
if (scope.AppliesToAddress == "urn:fbauth.com:facebook")
{
//Specify the Web Application URL which has claim based authentication as Facebook as a Trusted provider.
scope.ReplyToAddress = "http://win-6rnn5tdp5c6:47213/_trust/&quot;;

}
else
{
scope.ReplyToAddress = scope.AppliesToAddress;
}
return scope;

}

6. In the Web.config file update the SigningCertificateName

 

 

Step 7: Create a New Web Application in SharePoint 2010

  1. Open Central Administration
  2. Click on Manage Web Applications
  3. Select New Web Application option from the Ribbon bar.
  4. In the New Web Application window select Claim Based as Authentication mode.

  5. Select Facebook as Trusted Identity Provider

  6. Click OK
  7. Now Once the Web Application is created we need to create a Site collection.
  8. Click on Create Site Collections under Site Collections
  9. Make sure your newly created Web Application is selected for which you are creating a site collection.
  10. Specify Title and select any template, In the Primary Site Collection Administrator select Browse people/group button.

 

  1. Select People window opens and there you will see Facebook in the left pane

     

     

  2. Now select Facebook and click on the search icon button to search. You will see one Facebook user will populate in the main pane.

     

     

  3. Select and click ok
  4. We are done now we will navigate to our Web Application and login with Facebook account.

[Hint]

 

 

 

Step 8: Navigating to SharePoint 2010 Site

 

  1. Navigate to your SharePoint site. It will show you the option to select Authentication type as Facebook and Windows Authentication.
  2. Just Select Facebook.

  3. As the certificate I have used is self- signed that’s why It will show some warning as below. Just click on Continue to the website and proceed.

  1. It will show the Facebook login page. Enter your user name and password and click on Sign In.

     

  2. It will show the Main SharePoint site Home page.

     

Note: One thing you want to do here is when you will login to your account first time with your Facebook Id you will be prompted Access Denied in SharePoint site and it will give show you the numeric ID of your Facebook Account that this does not have an access to your site. Just copy that ID and place it in any of the SharePoint User Groups of your Site Collection or even specify it as a Primary or Secondary Administrator just to test. Then now when you re login, it will show the main SharePoint site page.

About these ads
  1. February 7, 2012 at 11:56 pm | #1

    Thanks $author| you share some great -2 tactics, Thanks For Sharing all this and making it clear enough for any one to be able to grasp! I’ve Subscribed to your rss feed to Keep up to date, looking forword to your new posts!

  2. March 2, 2012 at 7:48 am | #2

    Regards for all your efforts that you have put in this. Very interesting information. “Every man is the architect of his own fortune.” by Appius Claudius.

  3. March 10, 2012 at 9:22 am | #3

    Simply a smiling visitant here to share the love (:, btw great design .

  4. March 13, 2012 at 10:05 am | #4

    I think this site has some very good info for everyone :D. “When you get a thing the way you want it, leave it alone.” by Sir Winston Leonard Spenser Churchill.

  5. March 13, 2012 at 4:37 pm | #5

    I visited a lot of website but I believe this one contains something extra in it. “A bore is a man who, when you ask him how he is, tells you.” by Bert Leston Taylor.

  6. March 13, 2012 at 11:38 pm | #6

    I am now not sure where you are getting your information, however good topic. I needs to spend a while learning much more or figuring out more. Thanks for great information I was looking for this information for my mission.

  7. March 14, 2012 at 7:05 am | #7

    Hello are using WordPress for your blog platform? I’m new to the blog world but I’m trying to get started and set up my own. Do you need any html coding expertise to make your own blog? Any help would be greatly appreciated!

  8. March 14, 2012 at 4:09 pm | #8

    Good post. I learn something more challenging and difficult on many blogs every single day. Most commonly it is stimulative to read content from different writers and practice a specific thing from their website. I’d prefer to use some articles on my blog if you don’t mind. Normally I’ll provide you a link . Thanks for sharing with us.

  9. March 14, 2012 at 8:15 pm | #9

    Thanks for your genuine and appealing content.

  10. March 14, 2012 at 9:47 pm | #10

    Real nice design and wonderful content , practically nothing else we want : D.

  11. March 14, 2012 at 11:39 pm | #11

    Generally I don’t read article on blogs, however I wish to say that this write-up very compelled me to take a look at and do it! Your writing taste has been amazed me. Thanks, quite nice article.

  12. March 15, 2012 at 2:43 am | #12

    I was just searching for this info for some time. After 6 hours of continuous Googleing, finally I got it in your website. I wonder what is the lack of Google strategy that do not rank this type of informative websites in top of the list. Generally the top websites are full of garbage.

  13. March 15, 2012 at 7:24 am | #13

    Only wanna remark on few general things, The website style is perfect, the subject matter is rattling good : D.

  14. March 15, 2012 at 10:21 am | #14

    Thank you for any other wonderful post. The place else may just anybody get that type of information in such an ideal method of writing? I have a presentation subsequent week, and I am at the look for such info.

  15. March 15, 2012 at 2:59 pm | #15

    Its fantastic as your other articles : D, appreciate it for posting . “Reason is the substance of the universe. The design of the world is absolutely rational.” by Georg Wilhelm Friedrich Hegel.

  16. March 15, 2012 at 9:13 pm | #16

    I think other website proprietors should take this site as an model, very clean and excellent user genial style and design, let alone the content. You’re an expert in this topic!

  17. March 15, 2012 at 9:34 pm | #17

    Great post, I believe website owners should learn a lot from this weblog its real user friendly. So much superb information on here :D.

  18. March 16, 2012 at 2:36 am | #18

    Very interesting topic , thanks for putting up. “The season of failure is the best time for sowing the seeds of success.” by Paramahansa Yogananda.

  19. March 16, 2012 at 4:13 am | #19

    You are my breathing in, I own few blogs and very sporadically run out from brand :). “‘Tis the most tender part of love, each other to forgive.” by John Sheffield.

  20. March 16, 2012 at 9:56 am | #20

    Some genuinely tremendous work on behalf of the owner of this website , utterly great subject material .

  21. March 16, 2012 at 11:02 am | #21

    Thanks, I have just been searching for information approximately this subject for ages and yours is the best I’ve came upon so far. But, what concerning the bottom line? Are you positive concerning the supply?

  22. March 16, 2012 at 1:58 pm | #22

    Wohh just what I was looking for, thanks for putting up.

  23. March 16, 2012 at 4:38 pm | #23

    Dead pent subject material, thank you for entropy. “He who establishes his argument by noise and command shows that his reason is weak.” by Michel de Montaigne.

  24. March 16, 2012 at 8:08 pm | #24

    Great write-up, I am regular visitor of one’s website, maintain up the excellent operate, and It is going to be a regular visitor for a lengthy time.

  25. March 16, 2012 at 9:48 pm | #25

    Thanks for the auspicious writeup. It in fact was a amusement account it. Look complex to more brought agreeable from you! However, how could we communicate?

    • March 17, 2012 at 6:47 am | #26

      Hey thanks for the appreciation, you can check my about us page for contacts.

  26. March 17, 2012 at 1:54 am | #27

    Wonderful site. Lots of helpful info here. I am sending it to several buddies ans also sharing in delicious. And obviously, thanks on your sweat!

  27. March 17, 2012 at 4:04 am | #28

    What’s Taking place i am new to this, I stumbled upon this I’ve found It absolutely useful and it has helped me out loads. I hope to give a contribution & help different users like its aided me. Great job.

  28. March 17, 2012 at 6:35 am | #29

    I truly appreciate this post. I have been looking everywhere for this! Thank goodness I found it on Bing. You have made my day! Thx again!

  29. March 17, 2012 at 10:30 am | #30

    I was looking through some of your blog posts on this website and I conceive this site is really informative! Keep putting up.

  30. March 17, 2012 at 12:02 pm | #31

    Wow! This could be one particular of the most helpful blogs We have ever arrive across on this subject. Basically Fantastic. I’m also a specialist in this topic therefore I can understand your effort.

  31. March 17, 2012 at 5:24 pm | #32

    Just wanna comment on few general things, The website pattern is perfect, the subject matter is real superb : D.

  32. March 17, 2012 at 7:21 pm | #33

    Personally, I have located that to remain probably the most fascinating topics when it draws a parallel to.

  33. March 17, 2012 at 8:01 pm | #34

    Many thanks

  34. March 18, 2012 at 1:23 am | #35

    Appreciate it for helping out, fantastic information.

  35. March 18, 2012 at 2:06 am | #36

    I am not real good with English but I come up this really easy to understand.

  36. March 18, 2012 at 7:24 am | #37

    Thanks for the auspicious writeup. It in reality used to be a enjoyment account it. Look complex to more brought agreeable from you! However, how can we keep in touch?

  37. March 18, 2012 at 5:36 pm | #38

    Wohh just what I was looking for, thank you for posting.

  38. March 18, 2012 at 10:21 pm | #39

    Real wonderful information can be found on site . “Time discovers truth.” by Lucius Annaeus Seneca.

  39. March 18, 2012 at 10:31 pm | #40

    I just couldn’t depart your website prior to suggesting that I extremely loved the usual info a person provide to your guests? Is going to be back incessantly in order to investigate cross-check new posts.

  40. March 18, 2012 at 10:51 pm | #41

    I was studying some of your content on this website and I think this web site is real instructive! Keep on putting up.

  41. March 19, 2012 at 4:31 am | #42

    Pretty section of content. I just stumbled upon your site and in accession capital to assert that I get in fact enjoyed account your blog posts. Any way I will be subscribing to your feeds and even I achievement you access consistently quickly.

  42. March 19, 2012 at 6:36 am | #43

    I reckon something really interesting about your web site so I saved to favorites .

  43. March 19, 2012 at 7:31 am | #44

    hey guys!! Amazing site!

  44. March 19, 2012 at 2:17 pm | #45

    Much appreciation for this blog. You constantly publish a absorbing article. I will come again in future.

  45. March 19, 2012 at 2:19 pm | #46

    Simply wanna tell that this is very useful , Thanks for taking your time to write this. “A sailor without a destination cannot hope for a favorable wind.” by Leon Tec.

  46. March 19, 2012 at 2:23 pm | #47

    Enjoyed reading through this, very good stuff, regards .

  47. March 19, 2012 at 3:17 pm | #48

    The more often I visit this blog the more I’m interested

  48. March 19, 2012 at 7:47 pm | #49

    I know this if off topic but I’m looking into starting my own weblog and was wondering what all is needed to get setup? I’m assuming having a blog like yours would cost a pretty penny? I’m not very internet savvy so I’m not 100% positive. Any recommendations or advice would be greatly appreciated. Many thanks

  49. March 19, 2012 at 8:45 pm | #50

    I’ve recently started a blog, and the information you offer on this website has helped me greatly. Thank you for all of your time & work.

  50. March 19, 2012 at 8:53 pm | #51

    >Wonderful publish, Im attempting to get as much info as possible at the moment for my final undertaking to make certain I get the best final results attainable, so hold it coming

  51. March 20, 2012 at 12:51 am | #52

    You are my intake , I have few web logs and very sporadically run out from to brand.

  52. March 20, 2012 at 2:03 am | #53

    bookmarked!!, I love your web site!

  53. March 20, 2012 at 3:20 am | #54

    Hello! I’ve been reading your web site for a long time now and finally got the bravery to go ahead and give you a shout out from Huffman Tx! Just wanted to tell you keep up the good job!

  54. March 20, 2012 at 3:52 am | #55

    Good blog! I really love how it’s easy on my eyes as well as the data are well written. I am wondering how I could be notified whenever a new post has been made. I have subscribed to your rss feed which should do the trick! Have a nice day!

  55. March 20, 2012 at 9:14 am | #56

    Thank you, I’ve recently been searching for info about this subject for ages and yours is the best I have discovered so far. But, what about the conclusion? Are you sure about the source?

  56. March 20, 2012 at 9:56 pm | #57

    I have recently started a site, and the information you offer on this website has helped me tremendously. Thanx for all of your time & work.

  57. March 20, 2012 at 10:04 pm | #58

    As soon as I detected this website I went on reddit to share some of the love with them.

  58. March 21, 2012 at 2:55 am | #59

    I was wondering if you ever considered changing the layout of your website? Its very well written; I love what youve got to say. But maybe you could a little more in the way of content so people could connect with it better. Youve got an awful lot of text for only having one or two images. Maybe you could space it out better?

  59. March 21, 2012 at 3:35 am | #60

    Amazing! This blog looks exactly like my old one! It’s on a completely different topic but it has pretty much the same page layout and design. Superb choice of colors!

  60. March 21, 2012 at 4:10 am | #61

    Hmm is anyone else encountering problems with the pictures on this blog loading? I’m trying to determine if its a problem on my end or if it’s the blog. Any feedback would be greatly appreciated.

  61. March 21, 2012 at 6:32 am | #62

    I truly appreciate this post. I have been looking all over for this! Thank goodness I found it on Bing. You have made my day! Thx again!

  62. March 21, 2012 at 10:54 am | #63

    I conceive you have noted some very interesting points , regards for the post.

  63. March 21, 2012 at 12:22 pm | #64

    Howdy! Someone in my Myspace group shared this site with us so I came to take a look. I’m definitely loving the information. I’m bookmarking and will be tweeting this to my followers! Great blog and fantastic design and style.

  64. March 21, 2012 at 12:23 pm | #65

    You have noted very interesting details ! ps decent website . “Ask me no questions, and I’ll tell you no fibs.” by Oliver Goldsmith.

  65. March 21, 2012 at 2:44 pm | #66

    Hello there, I found your blog by way of Google whilst looking for a comparable subject, your web site came up, it looks good. I have bookmarked it in my google bookmarks.

  66. March 21, 2012 at 11:37 pm | #67

    Today, while I was at work, my cousin stole my iphone and tested to see if it can survive a thirty foot drop, just so she can be a youtube sensation. My iPad is now broken and she has 83 views. I know this is completely off topic but I had to share it with someone!

  67. March 22, 2012 at 3:35 am | #68

    Keep up the wonderful work, I read few posts on this site and I think that your blog is real interesting and contains circles of great information.

  68. March 22, 2012 at 9:16 am | #69

    Great post. I just stumbled upon your blog and wanted to say that I have really enjoyed browsing your blog posts. In any case I’ll be subscribing to your feed and I hope you write again soon!

  69. March 22, 2012 at 1:23 pm | #70

    I am not rattling wonderful with English but I come up this really leisurely to understand.

  70. March 22, 2012 at 2:47 pm | #71

    What i don’t understood is if truth be told how you are no longer really a lot more neatly-appreciated than you may be now. You are very intelligent. You realize therefore considerably relating to this topic, made me for my part believe it from a lot of numerous angles. Its like men and women are not involved unless it’s one thing to accomplish with Woman gaga! Your own stuffs excellent. Always care for it up!

  71. March 22, 2012 at 4:07 pm | #72

    Very fantastic info can be found on blog.

  72. March 22, 2012 at 6:03 pm | #73

    I’ve never thought that any blog would catch my attention so easily

  73. March 22, 2012 at 10:34 pm | #74

    Exceptional Blog!

  74. March 23, 2012 at 1:02 am | #75

    Between me and my husband we’ve owned more MP3 players over the years than I can count, including Sansas, iRivers, iPods (classic & touch), the Ibiza Rhapsody, etc. But, the last few years I’ve settled down to one line of players. Why? Because I was happy to discover how well-designed and fun to use the underappreciated (and widely mocked) Zunes are.

  75. March 23, 2012 at 6:57 am | #76

    Keep up the superb work, I read few articles on this web site and I believe that your website is really interesting and has got circles of fantastic info.

  76. March 23, 2012 at 7:59 am | #77

    After study a number of of the weblog posts in your web site now, and I truly like your method of blogging. I bookmarked it to my bookmark website checklist and can be checking back soon. Pls take a look at my site as properly and let me know what you think.

  77. March 23, 2012 at 1:31 pm | #78

    Very interesting info!Perfect just what I was searching for!

  78. March 23, 2012 at 6:50 pm | #79

    Very interesting details you have observed, thanks for putting up.

  79. March 23, 2012 at 9:58 pm | #80

    I believe this website has very excellent composed articles articles.

  80. piano music
    March 24, 2012 at 12:08 am | #81

    You made some clear points there. I looked on the internet for the issue and found most guys will approve with your site.

  81. March 24, 2012 at 12:55 am | #82

    It is perfect time to make some plans for the future and it’s time to be happy. I have read this post and if I could I wish to suggest you few interesting things or tips. Maybe you could write next articles referring to this article. I want to read more things about it!

  82. March 24, 2012 at 3:42 am | #83

    I can see which you are putting a a lot of efforts into your blog. Preserve posting the good perform.Some really helpful information in there. Bookmarked. Wonderful to see your website. Thanks!

  83. March 24, 2012 at 6:29 am | #84

    Love it all. There is a good chance I’ll bookmark this page, but then again, I’m feeling a bit grumpy today, so may not. I’ll let you know.

  84. March 24, 2012 at 8:27 am | #85

    Attractive section of content. I just stumbled upon your site and in accession capital to assert that I get actually enjoyed account your blog posts. Anyway I will be subscribing to your feeds and even I achievement you access consistently quickly.

  85. March 24, 2012 at 2:26 pm | #86

    I’ve recently started a web site, the information you offer on this site has helped me tremendously. Thank you for all of your time & work.

  86. March 24, 2012 at 5:09 pm | #87

    Have you ever ever considered including extra movies to your weblog posts to keep the readers more entertained? I imply I simply learn through the complete article of yours and it was quite good but since I am extra of a visual learner,I discovered that to be more useful properly let me know how it turns out! I really like what you guys are always up too. Such intelligent work and reporting! Sustain the good works guys I’ve added you guys to my blogroll. This is a nice article thanks for sharing this informative information.. I’ll go to your blog commonly for some latest post. Anyway, in my language, there usually are not much good source like this.

  87. March 24, 2012 at 7:05 pm | #88

    very nice put up, i actually love this web site, carry on it

  88. March 25, 2012 at 4:04 am | #89

    I really appreciate your piece of work, Great post.

  89. March 25, 2012 at 8:05 am | #90

    I like this site very much so much wonderful information.

  90. March 25, 2012 at 9:43 am | #91

    It’s very helpful and encouraging, and i want to bookmark this webpage to be certain that potential customers is originating from your aspect and even more folks check out your blog.Maintain posting far more.

  91. March 25, 2012 at 9:47 am | #92

    I loved as much as you’ll receive carried out proper here. The comic strip is tasteful, your authored material stylish. nevertheless, you command get bought an shakiness over that you wish be handing over the following. ill indisputably come further before again since precisely the same nearly very ceaselessly inside case you shield this increase.

  92. March 25, 2012 at 1:43 pm | #93

    I like this post, enjoyed this one regards for putting up.

  93. March 25, 2012 at 3:02 pm | #94

    I am not real wonderful with English but I line up this really leisurely to translate.

  94. March 25, 2012 at 4:39 pm | #95

    Very interesting topic, appreciate it for putting up.

  95. March 25, 2012 at 6:56 pm | #96

    Very nice post. I just stumbled upon your blog and wished to say that I’ve really enjoyed surfing around your blog posts. In any case I’ll be subscribing to your rss feed and I hope you write again very soon!

  96. March 26, 2012 at 2:50 am | #97

    I like this web site very much so much fantastic information.

  97. March 26, 2012 at 7:46 am | #98

    Rattling nice layout and fantastic content, nothing else we require :D.

  98. March 26, 2012 at 8:01 am | #99

    You completed a number of good points there. I did a search on the issue and found most people will consent with your blog.

  99. March 26, 2012 at 11:15 am | #100

    I believe this website has some rattling wonderful information for everyone :D. “America is not merely a nation but a nation of nations.” by Lyndon B. Johnson.

  100. March 26, 2012 at 12:44 pm | #101

    Very nice publish, i certainly love this web site, keep on it

  101. March 26, 2012 at 12:51 pm | #102

    I’ll gear this review to 2 types of people: current Zune owners who are considering an upgrade, and people trying to decide between a Zune and an iPod. (There are other players worth considering out there, like the Sony Walkman X, but I hope this gives you enough info to make an informed decision of the Zune vs players other than the iPod line as well.)

  102. March 26, 2012 at 3:18 pm | #103

    Wonderful goods from you, man. I have understand your stuff previous to and you’re just extremely excellent. I really like what you’ve acquired here, really like what you’re saying and the way in which you say it. You make it entertaining and you still care for to keep it sensible. I cant wait to read much more from you. This is actually a tremendous web site.

  103. March 26, 2012 at 4:40 pm | #104

    Thanks a lot for sharing this with all of us you actually understand what you are speaking approximately! Bookmarked. Kindly additionally visit my website =). We may have a link change contract between us!

  104. March 26, 2012 at 4:44 pm | #105

    Fine Adept, what an exciting narrative. Easily hada blog We’d essentially blog about very much the same factors. Should you prefer a payday loan kindly visit

  105. March 27, 2012 at 1:20 am | #106

    When I originally commented I clicked the -Notify me when new comments are added- checkbox and now each time a comment is added I get four emails with the same comment. Is there any way you can remove me from that service? Thanks!

  106. March 27, 2012 at 4:48 am | #107

    Hiya! Fantastic blog! I happen to be a daily visitor to your site (somewhat more like addict :P ) of this website. Just wanted to say I appreciate your blogs and am looking forward for more to come!

  107. March 27, 2012 at 5:35 am | #108

    Excellent read, I simply passed this onto a colleague who was doing a little analysis on that. And he truly purchased me lunch as a result of I found it for him smile So let me rephrase that: Thanks for lunch! Anyway, in my language, there should not a lot good source like this.

  108. March 27, 2012 at 2:45 pm | #109

    Very interesting subject, thanks for posting.

  109. March 27, 2012 at 2:52 pm | #110

    Whats up! I simply would like to give a huge thumbs up for the good information you have here on this post. I will be coming back to your blog for extra soon.

  110. March 27, 2012 at 7:44 pm | #111

    Hiya! Fantastic blog! I happen to be a daily visitor to your site (somewhat more like addict :P ) of this website. Just wanted to say I appreciate your blogs and am looking forward for more to come!

  111. March 28, 2012 at 7:24 am | #112

    I do not even know how I ended up here, but I thought this post was great. I don’t know who you are but certainly you’re going to a famous blogger if you aren’t already ;) Cheers!

  112. March 28, 2012 at 9:44 am | #113

    Excellent read, I just passed this onto a friend who was doing some research on that. And he actually bought me lunch because I found it for him smile So let me rephrase that: Thanks for lunch! “We have two ears and one mouth so that we can listen twice as much as we speak.” by Epictetus.

  113. March 29, 2012 at 3:43 am | #114

    Utterly composed content material , thankyou for information .

  114. April 4, 2012 at 7:28 am | #115

    We wish to thank you yet again for the wonderful ideas you offered Jeremy when preparing a post-graduate research plus, most importantly, with regard to providing each of the ideas in a blog post. If we had been aware of your web page a year ago, we’d have been saved the unwanted measures we were choosing. Thank you very much.

  115. April 11, 2012 at 7:21 am | #116

    Thank you for the write up! Also, just a heads up, your RSS feeds aren’t working. Could you take a look at that?

  116. April 12, 2012 at 10:54 am | #117

    I wanted to develop a small note to say thanks to you for all of the fabulous guidelines you are giving at this website. My time intensive internet look up has at the end been recognized with extremely good tips to talk about with my two friends. I ‘d claim that many of us site visitors are truly blessed to exist in a notable place with many lovely individuals with very helpful guidelines. I feel extremely grateful to have come across your website page and look forward to really more fun minutes reading here. Thank you once more for a lot of things.

  117. April 12, 2012 at 11:04 am | #118

    I together with my guys were viewing the good advice from the blog and so then got a terrible suspicion I never expressed respect to the website owner for those techniques. Those women came as a result warmed to read them and have clearly been loving them. I appreciate you for turning out to be indeed thoughtful as well as for considering this form of useful issues most people are really needing to understand about. My sincere regret for not expressing gratitude to sooner.

  118. May 17, 2012 at 6:43 pm | #119

    impressive coding…

  119. June 11, 2012 at 9:02 pm | #120

    Great works

  120. July 9, 2012 at 3:00 pm | #121

    Do we need to add provider for Facebook in web.config of the webapplication , so that Facebook users apper in People picker?? I tried the same steps mentioned here but Facebook is not coming in the people picker.

    • July 16, 2012 at 7:08 am | #122

      Actually we cannot add facebook ids directly to sharepoint user groups to whom we want to give an access. Each facebook id have a numeric id in behind please see the “Note” section at the bottom of the blog to the problem i faced and then resolved. You can add that “numeric” id in the user group of sharepoint for permissions and access rights.

      • September 17, 2012 at 4:23 pm | #123

        Exactly that’s what the problem is, My people picker is not picking up the Facebook Id’s. How do we configure the people picker to get the facebook users?

      • October 2, 2012 at 7:32 pm | #124

        Hmmm… Good question but as I got the other way around as mentioned in the post I didn’t look into it.

  121. Raj
    September 13, 2012 at 7:43 pm | #125

    Great work, Ovais. I tried following the steps but got stuck at creation of STS reference, because I kept getting “File not found exception (0×80070002). Any advise will be greatly appreciated. I am running on Windows Server 2008 R2.

    Thanks.
    Raj

  122. September 13, 2012 at 9:18 pm | #126

    I know this web page provides quality dependent content and other stuff, is there any other website which provides these stuff in quality?

  123. max
    September 14, 2012 at 8:28 am | #127

    Great Article……..i follow those Step but i am stuck at one point, when we create website in IIS it cannot be browse or it give me error.

  124. Sheetal
    October 23, 2012 at 10:46 am | #129

    Hi, This is a really nice post. it helps me to create an web application with trusted FB.
    But i am facing some difficulties.

    I am using ‘SharePoint 2010 Foundation’.
    In IIS I have created website “https://localhost:766″, and in my ASP .net code i have created STS website i make this as start up project when i run the site it gives me an address like “http://localhost:56833/WebLoginApps1_STS/” and directly redirect to FB login page.

    so at the time of power-shell command i used
    $signinurl = “http://localhost:56833/WebLoginApps1_STS/”
    and run the all commands.

    i have created web application from central admin and also Selects Facebook as Trusted Identity Provider.
    But at the time creating ‘site collection’ i cannot able to find the ‘Primary Site Collection Administrator’ of “Facebook”.

    • October 23, 2012 at 11:08 am | #130

      See when you login first time with your Facebook id it will give you some error message followed to some numeric id. So, then just logic with Windows Authentication and add that Id as secondary site collection or primary site collection Administrator. By default the access is denied. Once done, login again with your facebook id and you will pass through the authentication.

  125. Sheetal
    October 23, 2012 at 12:14 pm | #131

    Now i am created site collection with primary site collection Administrator as “admin”,
    but when i choose login with Facebook it will redirect me on FB’s login page which we want.
    but after login it will not showing me any error message. i will directly jump to my Facebook account.

  126. Sheetal
    October 23, 2012 at 3:35 pm | #132

    Hey, I found Error in Default.aspx page
    Error : The action ” (Request.QueryString['wa']) is unexpected. Expected actions are: ‘wsignin1.0′ or ‘wsignout1.0′.
    In the following line of code. :
    WSFederationConstants.Actions.SignOut ) );
    }
    }
    catch ( Exception exception )

    can you please help me to solve this.

    • October 23, 2012 at 5:39 pm | #133

      You might be doing something wrong.. please go through to the article carefully… many guys have successfully implemented following this article without getting any such error. I can help you out but please go through the article once again…

  127. Mohammad
    January 19, 2013 at 1:25 am | #134

    Hi,
    What you think about these product?
    http://sharepoint-live-authentication.shetabtech.com/

  128. February 16, 2013 at 8:19 pm | #135

    When I changed phyhsical path to STS-website’s path and clicked on the test connection, I received a warning message saying; “Cannot verify access to path”.How can I solve this?

  129. Til
    February 28, 2013 at 3:24 am | #136

    Hi,

    in Step 3: Create an STS Site from ASP.Net website, when I click “Finish” I get an exception saying: The system cannot find the file specified. (Exception from HRESULT: 0×80070002.
    I don’t know what I could do to fix the problem

  130. March 17, 2013 at 12:52 pm | #137

    Can you please give us an update?

  131. May 16, 2013 at 10:23 am | #138

    I every time spent my half an hour to read this web site’s posts every day along with a mug of coffee.

  132. May 20, 2013 at 4:36 pm | #139

    You’ve made various nice points here. I see
    something actually special in this site. Thanks for
    posting.

  133. sri
    May 23, 2013 at 12:29 am | #140

    Thanks for the walk-through.
    I have no problem with the ASP.net site with sts and integrated with facebook.
    But when I have confiugred the facebook authentication for sharepoint i am receiving an error stating “ID4220: The SAML Assertion is either not signed or the signature’s KeyIdentifier cannot be resolved to a SecurityToken. Ensure that the appropriate issuer tokens are present on the token resolver. To handle advanced token resolution requirements, extend Saml11TokenSerializer and override ReadToken.”

    Can you please tell if there are some settings I have to do on sharepoint to resolve this error.

    • Shri
      July 23, 2013 at 3:50 pm | #141

      Was this resolved for you sri.. I am in the same pool as you ..

      • Sri
        July 31, 2013 at 7:50 pm | #142

        No!!!
        I was unable to find any solution for this issue.

      • August 7, 2013 at 4:28 am | #143

        Please check the article again maybe you have missed some step. I didnt face any such error before.

  134. June 18, 2013 at 2:40 pm | #144

    I have read so many articles or reviews on the topic of the blogger lovers except
    this article is actually a nice piece of writing, keep it up.

  135. July 17, 2013 at 8:11 pm | #145

    Amazing post thank you! We think your content
    articles are excellent as well as hope there will be more soon.

  136. July 29, 2013 at 12:12 pm | #146

    What’s up to all, the contents present at this website are really remarkable for people knowledge, well, keep up the nice work fellows.

  137. September 21, 2013 at 6:03 am | #147

    Appreciating the time and energy you put into your site and
    detailed information you offer. It’s great to come across a blog every once
    in a while that isn’t the same out of date rehashed information.
    Fantastic read! I’ve saved your site and
    I’mincluding your RSS feweds too my Googlpe account.

  138. Rajesh
    October 17, 2013 at 11:53 am | #148

    its not working, its giving error “Keyset does not exist”

  139. Rajesh
    October 21, 2013 at 3:19 pm | #149

    its give 500 internal server error

    • October 28, 2013 at 5:58 am | #150

      Please check where your website is hosted and provide the same URL that should be accessible. This is something related to the site hosting issues.

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 51 other followers

%d bloggers like this: