コード例 #1
0
        public IActionResult AssociateCode(string code)
        {
            CharacterDetails character = _oauthManager.GetCharacterDetailsFromCode(code);

            string errorMessage = string.Empty;

            try
            {
                _profileManager.AssociateCharacter(User, character);
            }
            catch (CharacterAlreadyAssignedException ex)
            {
                errorMessage = "Character already assigned to an account";
            }
            catch (Exception ex)
            {
                errorMessage = "An error occured. Please try again.";
            }

            return(RedirectToAction("Index", new { errorMessage }));
        }
コード例 #2
0
        public IActionResult OAuthCallback(string code)
        {
            if (User.Identity.IsAuthenticated)
            {
                return(RedirectToAction("AssociateCode", "Profile", new { code }));
            }
            else
            {
                CharacterDetails authenticatedCharacter = _oAuthManager.GetCharacterDetailsFromCode(code);
                CharacterDetails associatedCharacter    = _characterRepository.GetCharacter(authenticatedCharacter.CharacterID);
                if (associatedCharacter != null)
                {
                    ApplicationUser user = _userManager.FindByIdAsync(associatedCharacter.AccountID).Result;
                    _signInManager.SignInAsync(user, true).Wait();
                }
                else
                {
                    return(ExternalLoginRegistration(authenticatedCharacter));
                }

                return(RedirectToAction("Index", "Home"));
            }
        }