public override Task Authenticated(FacebookAuthenticatedContext context) { context.Identity.AddClaim(new Claim("ExternalAccessToken", context.AccessToken)); //context.Identity.AddClaim(new System.Security.Claims.Claim("urn:facebook:email", context.Email, ClaimValueTypes.Email, "Facebook")); return(Task.FromResult <object>(null)); }
private void AddClaim(FacebookAuthenticatedContext context, string claimName, string propertyName) { var value = context.User[propertyName]?.ToString(); if (propertyName == "picture") { value = context.User["picture"]?["data"]?["url"]?.ToString(); if (value == null) { return; } context.Identity.AddClaim(new Claim("picture_url", value)); context.Identity.AddClaim(new Claim("picture_mime", "image/jpg")); return; } if (value == null) { return; } context.Identity.AddClaim(new Claim(claimName, value)); }
public override Task Authenticated(FacebookAuthenticatedContext context) { context.Identity.AddClaim(new Claim("ExternalAccessToken", context.AccessToken)); context.Identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, context.Id)); //context.Identity.AddClaim(new Claim(ClaimTypes.Email, context.Email)); return(Task.FromResult <object>(null)); }
public override Task Authenticated(FacebookAuthenticatedContext context) { context.Identity.AddClaim(new Claim("ExternalAccessToken", context.AccessToken)); context.Identity.AddClaim(new Claim("FacebookAccessToken", context.AccessToken)); return(Task.FromResult <object>(null)); }
/// <summary> /// Invoked whenever Facebook succesfully authenticates a user /// </summary> /// <param name="context">Contains information about the login session as well as the user <see cref="T:System.Security.Claims.ClaimsIdentity" />.</param> /// <returns>A <see cref="T:System.Threading.Tasks.Task" /> representing the completed operation.</returns> public override Task Authenticated(FacebookAuthenticatedContext context) { TryParseProperty(context, "first_name", Claims.FirstName); TryParseProperty(context, "last_name", Claims.LastName); TryParseProperty(context, "picture.data.url", Claims.PhotoUrl); return(base.Authenticated(context)); }
public override Task Authenticated(FacebookAuthenticatedContext context) { string avatarUrl = GetAvatarUrl(context.User.GetValue("id").ToString(), 240); context.Identity.AddClaim( new Claim(OwinHelper.ClaimTypeAvatarUrl, avatarUrl)); return(base.Authenticated(context)); }
private void TryParseProperty(FacebookAuthenticatedContext context, string name, string targetName) { var value = context.User.SelectToken(name); if (value != null) { context.Identity.AddClaim(new Claim(targetName, value.ToString())); } }
private Task OnAuthenticated(FacebookAuthenticatedContext facebookAuthenticatedContext) { var gender = facebookAuthenticatedContext.User.GetValue("gender"); var genderClaim = new Claim(ClaimTypes.Gender, gender.ToString(), "", "Facebook"); facebookAuthenticatedContext.Identity.AddClaim(new Claim("urn:facebook:access_token", facebookAuthenticatedContext.AccessToken)); facebookAuthenticatedContext.Identity.AddClaim(genderClaim); return(Task.FromResult(0)); }
public override Task Authenticated(FacebookAuthenticatedContext context) { if (!context.Identity.HasClaim(ClaimTypes.Authentication, "true")) { context.Identity.AddClaim(new Claim(ClaimTypes.Authentication, "true")); } context.Identity.AddClaim(new Claim("ExternalAccessToken", context.AccessToken)); return(Task.FromResult <object>(null)); }
public override Task Authenticated(FacebookAuthenticatedContext context) { context.Identity.AddClaim(new Claim("ExternalAccessToken", context.AccessToken)); TryParseProperty(context, "first_name", AuthConstants.CustomClaims.FirstName); TryParseProperty(context, "last_name", AuthConstants.CustomClaims.LastName); TryParseProperty(context, "picture.data.url", AuthConstants.CustomClaims.ImageUrl); TryParseProperty(context, "Email", AuthConstants.CustomClaims.Email); return(Task.FromResult <object>(null)); }
public override Task Authenticated(FacebookAuthenticatedContext context) { context.Identity.AddClaim(new Claim("ExternalAccessToken", context.AccessToken)); context.Identity.AddClaim(new Claim(ClaimTypes.DateOfBirth, context.User["birthday"].ToString())); context.Identity.AddClaim(new Claim(ClaimTypes.GivenName, context.User["first_name"].ToString())); context.Identity.AddClaim(new Claim(ClaimTypes.Surname, context.User["last_name"].ToString())); context.Identity.AddClaim(new Claim(ClaimTypes.Gender, context.User["gender"].ToString())); //context.Identity.AddClaim(new Claim("profile_picture", "https://graph.facebook.com/" + context.Id + "/picture?type=large&w%E2%80%8C%E2%80%8Bidth=720&height=720")); return(Task.FromResult <object>(null)); }
public override Task Authenticated(FacebookAuthenticatedContext context) { context.Identity.AddClaim(new System.Security.Claims.Claim("urn:facebook:access_token", context.AccessToken, XmlSchemaString, "Facebook")); foreach (var x in context.User) { var claimType = string.Format("urn:facebook:{0}", x.Key); string claimValue = x.Value.ToString(); if (!context.Identity.HasClaim(claimType, claimValue)) { context.Identity.AddClaim(new System.Security.Claims.Claim(claimType, claimValue, XmlSchemaString, "Facebook")); } } return(Task.FromResult(0)); }
public override Task Authenticated(FacebookAuthenticatedContext context) { context.Identity.AddClaim(new Claim("ExternalAccessToken", context.AccessToken)); foreach (var claim in context.User) { var claimType = string.Format("urn:facebook:{0}", claim.Key); string claimValue = claim.Value.ToString(); if (!context.Identity.HasClaim(claimType, claimValue)) { context.Identity.AddClaim(new Claim(claimType, claimValue, "XmlSchemaString", "Facebook")); } } return(Task.FromResult <object>(null)); }
public override Task Authenticated(FacebookAuthenticatedContext context) { var accessTokenClaim = new Claim("ExternalAccessToken", context.AccessToken, "urn:facebook:access_token"); context.Identity.AddClaim(accessTokenClaim); var extraClaims = GetAdditionalFacebookClaims(accessTokenClaim); context.Identity.AddClaim(new Claim(ClaimTypes.Email, extraClaims.First(k => k.Key == "email").Value.ToString())); context.Identity.AddClaim(new Claim("Provider", context.Identity.AuthenticationType)); context.Identity.AddClaim(new Claim(ClaimTypes.Name, context.Identity.FindFirstValue(ClaimTypes.Name))); var userDetail = context.User; var link = userDetail.Value <string>("link") ?? string.Empty; context.Identity.AddClaim(new Claim("link", link)); context.Identity.AddClaim(new Claim("FacebookId", userDetail.Value <string>("id"))); return(System.Threading.Tasks.Task.FromResult(0)); }
internal static async Task OnAuthenticated(FacebookAuthenticatedContext context) { if (context.Identity != null) { Helpers.ThrowIfConditionFailed(() => context.AccessToken == "ValidAccessToken", ""); Helpers.ThrowIfConditionFailed(() => context.Email == "*****@*****.**", ""); Helpers.ThrowIfConditionFailed(() => context.Id == "Id", ""); Helpers.ThrowIfConditionFailed(() => context.Link == "https://www.facebook.com/myLink", ""); Helpers.ThrowIfConditionFailed(() => context.Name == "AspnetvnextTest AspnetvnextTest", ""); Helpers.ThrowIfConditionFailed(() => context.UserName == "AspnetvnextTest.AspnetvnextTest.7", ""); Helpers.ThrowIfConditionFailed(() => context.User.SelectToken("id").ToString() == context.Id, ""); Helpers.ThrowIfConditionFailed(() => context.ExpiresIn.Value == TimeSpan.FromSeconds(100), ""); Helpers.ThrowIfConditionFailed(() => context.AccessToken == "ValidAccessToken", ""); context.Identity.AddClaim(new Claim("ManageStore", "false")); } await Task.FromResult(0); }
public override Task Authenticated(FacebookAuthenticatedContext context) { context.Identity.AddClaim(new Claim("ExternalAccessToken", context.AccessToken)); vaccess dd = new vaccess(); vresult dd2 = new vresult(); dd2.vname = context.AccessToken; // dd.getToken(context.AccessToken); string vname = context.Identity.Name; context.OwinContext.Set <string>("as:client_id", context.AccessToken); return(Task.FromResult <vresult>(dd2)); // return Task.FromResult<object>(null); }
// public override Task Authenticated(FacebookAuthenticatedContext context) { try { addClaim(context.Identity, "urn:tokens:facebook:accesstoken", context.AccessToken); //addClaim(context.Identity, "urn:tokens:facebook:accesstokenexpiration", context.ExpiresIn?.ToString()); // addClaim(context.Identity, "urn:tokens:facebook:familyname", getValue(context.User, "last_name")); addClaim(context.Identity, "urn:tokens:facebook:givenname", getValue(context.User, "first_name")); addClaim(context.Identity, "urn:tokens:facebook:avatarurl", $@"https://graph.facebook.com/{context.Id}/picture"); //?width=240&height=240 addClaim(context.Identity, "urn:tokens:facebook:company", getValue(context.User, "company")); // //addClaim(context.Identity, "urn:tokens:facebook:username", context.UserName); //addClaim(context.Identity, "urn:tokens:facebook:fullname", context.Name); //addClaim(context.Identity, "urn:tokens:facebook:location", getValue(context.User, "location")); } catch (Exception ex) { Logger.Error(ex, LogCategory.Claims, "There was an issue reading the information from the Facebook Authentication context."); } // return(base.Authenticated(context)); }
public override Task Authenticated(FacebookAuthenticatedContext context) { var fbEmailEndPoint = string.Format("https://graph.facebook.com/me?fields=id,name,email&access_token={0}", context.AccessToken); var uri = new Uri(fbEmailEndPoint); HttpClient client = new HttpClient(); var response = client.GetAsync(uri); response.Wait(); var content = response.Result.Content.ReadAsStringAsync(); content.Wait(); dynamic jObj = (JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(content.Result.ToString()); string email = jObj["email"]; context.Identity.AddClaim(new Claim("Email", email)); context.Identity.AddClaim(new Claim("ExternalAccessToken", context.AccessToken)); // var client = new FacebookClient(context.AccessToken); //dynamic info = client.Get("me", new { fields = "name,id,email" }); return(Task.FromResult <object>(null)); }
public static Task AddBasicDetailsAsClaims(FacebookAuthenticatedContext context) { if (context == null) { throw new InvalidOperationException("context"); } if (!context.Identity.HasClaim("urn:facebook:access_token", context.AccessToken)) { context.Identity.AddClaim(new Claim("urn:facebook:access_token", context.AccessToken, XmlSchemaString, "Facebook")); } dynamic user = context.User; if (!context.Identity.HasClaim("urn:facebook:first_name", user.first_name.Value)) { context.Identity.AddClaim(new Claim("urn:facebook:first_name", user.first_name.Value, XmlSchemaString, "Facebook")); } if (!context.Identity.HasClaim("urn:facebook:gender", user.gender.Value)) { context.Identity.AddClaim(new Claim("urn:facebook:gender", user.gender.Value, XmlSchemaString, "Facebook")); } if (!context.Identity.HasClaim("urn:facebook:last_name", user.last_name.Value)) { context.Identity.AddClaim(new Claim("urn:facebook:last_name", user.last_name.Value, XmlSchemaString, "Facebook")); } if (!context.Identity.HasClaim("urn:facebook:birthday", user.birthday.Value)) { context.Identity.AddClaim(new Claim("urn:facebook:birthday", user.birthday.Value, XmlSchemaString, "Facebook")); } return(Task.FromResult(0)); }
public override Task Authenticated(FacebookAuthenticatedContext context) { context.Identity.AddClaim( new Claim(ServiceClaimTypes.ProviderAccessToken, context.AccessToken)); return(base.Authenticated(context)); }
public override Task Authenticated(FacebookAuthenticatedContext context) { context.Identity.AddClaim(new Claim("access_token", context.AccessToken, ClaimValueTypes.String, "Facebook")); return(Task.FromResult <object>(null)); }
public override Task Authenticated(FacebookAuthenticatedContext context) { context.Identity.AddClaim(new Claim("ExternalAccessToken", context.AccessToken)); context.Identity.AddClaim(new Claim("Email", context.User.GetValue("email").ToString())); return(Task.FromResult <object>(null)); }
protected override async Task <AuthenticationTicket> AuthenticateCoreAsync() { var properties = (AuthenticationProperties)null; try { var accessToken = Request.Query["accessToken"]; var expires = Request.Query["expiresIn"]; string text; if (null == accessToken) { var code = (string)null; var state = (string)null; var query = Request.Query; var values = query.GetValues("error"); if (values != null && values.Count >= 1) { _logger.WriteVerbose("Remote server returned an error: " + Request.QueryString); } values = query.GetValues("code"); if (values != null && values.Count == 1) { code = values[0]; } values = query.GetValues("state"); if (values != null && values.Count == 1) { state = values[0]; } properties = Options.StateDataFormat.Unprotect(state); if (properties == null) { return(null); } if (!ValidateCorrelationId(properties, _logger)) { return(new AuthenticationTicket(null, properties)); } if (code == null) { return(new AuthenticationTicket(null, properties)); } var requestPrefix = Request.Scheme + "://" + Request.Host; var redirectUri = requestPrefix + Request.PathBase + Options.CallbackPath; var tokenRequest = "grant_type=authorization_code&code=" + Uri.EscapeDataString(code) + "&redirect_uri=" + Uri.EscapeDataString(redirectUri) + "&client_id=" + Uri.EscapeDataString(Options.AppId) + "&client_secret=" + Uri.EscapeDataString(Options.AppSecret); var tokenResponse = await _httpClient.GetAsync(Options.TokenEndpoint + "?" + tokenRequest, Request.CallCancelled); tokenResponse.EnsureSuccessStatusCode(); text = await tokenResponse.Content.ReadAsStringAsync(); var form = WebHelpers.ParseForm(text); accessToken = form["access_token"]; expires = form["expires"]; } else { properties = new AuthenticationProperties() { RedirectUri = "/Account/ExternalLoginCallback" }; } var graphAddress = Options.UserInformationEndpoint + "?access_token=" + Uri.EscapeDataString(accessToken); if (Options.SendAppSecretProof) { graphAddress += "&appsecret_proof=" + GenerateAppSecretProof(accessToken); } var graphResponse = await _httpClient.GetAsync(graphAddress, Request.CallCancelled); graphResponse.EnsureSuccessStatusCode(); text = await graphResponse.Content.ReadAsStringAsync(); var user = JObject.Parse(text); var context = new FacebookAuthenticatedContext(Context, user, accessToken, expires) { Identity = new ClaimsIdentity(Options.AuthenticationType, "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", "http://schemas.microsoft.com/ws/2008/06/identity/claims/role") }; if (!string.IsNullOrEmpty(context.Id)) { context.Identity.AddClaim(new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", context.Id, "http://www.w3.org/2001/XMLSchema#string", Options.AuthenticationType)); } if (!string.IsNullOrEmpty(context.UserName)) { context.Identity.AddClaim(new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", context.UserName, "http://www.w3.org/2001/XMLSchema#string", Options.AuthenticationType)); } if (!string.IsNullOrEmpty(context.Email)) { context.Identity.AddClaim(new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", context.Email, "http://www.w3.org/2001/XMLSchema#string", Options.AuthenticationType)); } if (!string.IsNullOrEmpty(context.Name)) { context.Identity.AddClaim(new Claim("urn:facebook:name", context.Name, "http://www.w3.org/2001/XMLSchema#string", Options.AuthenticationType)); if (string.IsNullOrEmpty(context.UserName)) { context.Identity.AddClaim(new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", context.Name, "http://www.w3.org/2001/XMLSchema#string", Options.AuthenticationType)); } } if (!string.IsNullOrEmpty(context.Link)) { context.Identity.AddClaim(new Claim("urn:facebook:link", context.Link, "http://www.w3.org/2001/XMLSchema#string", Options.AuthenticationType)); } context.Properties = properties; await Options.Provider.Authenticated(context); return(new AuthenticationTicket(context.Identity, context.Properties)); } catch (Exception ex) { _logger.WriteError("Authentication failed", ex); return(new AuthenticationTicket(null, properties)); } }