public static void SingIn(IOwinContext owinContext, User user, ExternalLoginModel externalLogin) { owinContext.Authentication.SignOut(DefaultAuthenticationTypes.ExternalCookie); var claimsMapper = new RegisteredExternal(user, externalLogin); var oAuthIdentity = CreateIdentity(claimsMapper, OAuthDefaults.AuthenticationType); var cookieIdentity = CreateIdentity(claimsMapper, CookieAuthenticationDefaults.AuthenticationType); var properties = CreateProperties(user); owinContext.Authentication.SignIn(properties, oAuthIdentity, cookieIdentity); }
public static void SingIn(OAuthGrantResourceOwnerCredentialsContext context, User user) { ClaimsMapper claimsMapper = new RegisteredLocal(user); ClaimsIdentity oAuthIdentity = CreateIdentity(claimsMapper, context.Options.AuthenticationType); ClaimsIdentity cookiesIdentity = CreateIdentity(claimsMapper, CookieAuthenticationDefaults.AuthenticationType); AuthenticationProperties properties = CreateProperties(user); AuthenticationTicket ticket = new AuthenticationTicket(oAuthIdentity, properties); context.Validated(ticket); context.Request.Context.Authentication.SignIn(cookiesIdentity); }
/// <summary> /// Custom properties that will be returned to the client with an access_token /// </summary> /// <param name="user">User base info</param> /// <returns>Properties</returns> public static AuthenticationProperties CreateProperties(User user) { IDictionary<string, string> data = new Dictionary<string, string> { { "email", user.Email }, { "name", user.FullName ?? string.Empty }, { "ava", UserProvider.GetAvatarUrl(user) ?? string.Empty } }; return new AuthenticationProperties(data); }
public RegisteredExternal(User user, ExternalLoginModel extLogin) { this.Id = user.Id.ToString(); this.Email = user.Email; this.FullName = user.FullName ?? string.Empty; this.AvatarUrl = UserProvider.GetAvatarUrl(user); this.Sid = extLogin.ProviderKey; this.Version = this.GetVersion(user.TimeStamp); this.IsVerified = user.IsVerified.ToString(); this.Issuer = ClaimsIdentity.DefaultIssuer; this.OriginalIssuer = extLogin.Provider.ToString(); }
public void SendDeleteConfirmationAsync(User user) { if (user == null) throw new ArgumentNullException("user"); ViewData.Model = user; var mailMessage = Populate(x => { x.Subject = Emails.DeleteConfirmation; x.ViewName = "DeleteConfirmation"; x.To.Add(user.Email); }); Task.Factory.StartNew(() => mailMessage.Send()); }
public Task DeleteUserWithDependenciesAsync(User user) { return this.UsersManager.DeleteUserWithDependenciesAsync(user.Id); }
public static string GetAvatarUrl(User user) { return string.Format("/api/account/avatar/{0}?anticache={1}", user.Id, Environment.TickCount); }
public static UserViewModel MapUserToViewModel(User user, ExternalLoginModel externalLogin) { return new UserViewModel { Email = user.Email, FullName = user.FullName, IsVerified = user.IsVerified, AvatarUrl = GetAvatarUrl(user), IsRegistered = true, LoginProvider = externalLogin.Provider.ToString() }; }
public static AccessToken CreateToken(IOwinContext owinContext, User user, ExternalLoginModel externalLogin) { var claimsMapper = new RegisteredExternal(user, externalLogin); return CreateToken(owinContext, user, claimsMapper); }
private static AccessToken CreateToken(IOwinContext owinContext, User user, ClaimsMapper claimsMapper) { var identity = CreateIdentity(claimsMapper, OAuthDefaults.AuthenticationType); var ticket = new AuthenticationTicket(identity, CreateProperties(user)); var context = new AuthenticationTokenCreateContext(owinContext, Startup.OAuthOptions.AccessTokenFormat, ticket); return new AccessToken { Type = OAuthDefaults.AuthenticationType, Value = context.SerializeTicket() }; }