/// <inheritdoc /> public virtual MobileAppUser CreateServiceUser(ClaimsIdentity claimsIdentity, string authToken) { MobileAppUser user = new MobileAppUser(claimsIdentity); if (user.Identity.IsAuthenticated) { // Determine the user ID based on either the uid or NameIdentifier claims. string userIdValue = claimsIdentity.GetClaimValueOrNull(ClaimTypes.NameIdentifier) ?? claimsIdentity.GetClaimValueOrNull("uid"); string prefix; string userId; if (!string.IsNullOrEmpty(userIdValue) && this.TryParseUserId(userIdValue, out prefix, out userId)) { user.Id = userIdValue; user.MobileAppAuthenticationToken = authToken; } else { // if no user name specified or the format is invalid, // set to anonymous SetAnonymousUser(user); } } return user; }