title: FacebookAuthenticatedContext returns a null Email
body: <p>I have this problem with Facebook authentication, here are the following steps that we go through to encounter this problem:</p>
  
  <ul>
  <li>User A uses device A to register onto our app via Facebook
  authentication.</li>
  <li>User A successfully goes to the registration page with his first
  name, last name and email taken from Facebook authentication.</li>
  <li>User A registers.</li>
  <li>User A logs out of our app and also on Facebook.</li>
  <li>User B uses the same device as User A (device A) to register onto our
  app via Facebook.</li>
  <li>User B gets redirected to the login page every time he tries to use
  Facebook authentication.</li>
  </ul>
  
  <p>So basically the problem is that the succeeding Facebook authentication using the same device has a problem. In the ExternalLoginCallback method, AuthenticationManager.GetExternalLoginInfoAsync returns a null every time for User B.</p>
  
  <p>I tried changing the FacebookAuthenticationProviderOptions based on the solutions I found on the web but none of them worked. Here's the current code that I'm using:</p>
  
  <pre><code>string XmlSchemaString = "www.w3.org/.../XMLSchema";
          FacebookAuthenticationOptions options = new FacebookAuthenticationOptions();
          options.Scope.Add("email");
          options.AppId = "...";
          options.AppSecret = "...";
          options.Provider = new FacebookAuthenticationProvider()
          {
              OnAuthenticated = (context) =&gt;
              {
                  context.Identity.AddClaim(new System.Security.Claims.Claim("urn:facebook:access_token", context.AccessToken, XmlSchemaString, "Facebook"));
                  context.Identity.AddClaim(new System.Security.Claims.Claim("urn:facebook:email", context.Email, XmlSchemaString, "Facebook"));
                  foreach (var x in context.User)
                  {
                      string claimType = string.Format("urn:facebook:{0}", x.Key);
                      string claimValue = x.Value.ToString();
                      if (!context.Identity.HasClaim(claimType, claimValue))
                      {
                          context.Identity.AddClaim(new Claim(claimType, claimValue, XmlSchemaString, "Facebook"));
                      }
                  }
                  return Task.FromResult(0);
              }
          };
          options.SignInAsAuthenticationType = DefaultAuthenticationTypes.ExternalCookie;
          app.UseFacebookAuthentication(options);
  </code></pre>
  
  <p>In the previous code, the context was asnyc and this resulted AuthenticationManager.GetExternalLoginInfoAsync to return a null everytime for User B after following the steps above, this is the reason why it keeps landing on the login page averytime for User B, so I removed the async and context.Email results to a null.</p>
  
  <p>For the record, if I try to login using Facebook for User A, it works fine. If anyone has encountered this problem, any help would be much appreciated. I have been trying to fix this for almost 3 days now and all fix I found and tried didn't work.</p>
  
  <p>-----EDIT----</p>
  
  <p>I found out the reason, there's an error if the email in the facebook account is not yet confirmed. Is there any workaround for this, our app needs the email information.</p>
  
  <p>Thanks,</p>