Example #1
0
        public async Task <IActionResult> Login(LogingViewModel loginViewModel)
        {
            // validate login
            if (loginViewModel.ValidationCode != "code")
            {
                ModelState.AddModelError("Validation Code", "Validation code is not valid. Use 'code' for Validation Code :-)");
                return(View("Index", loginViewModel));
            }

            // username must uniquely identify user. i use email in place of username
            string cacheKey = await _loggedUsersStorage.SaveLoginAsync(LoggedinUserModel.Create(loginViewModel.Email, loginViewModel.Name, loginViewModel.Email));

            Dictionary <string, string> parameters = new Dictionary <string, string>
            {
                { "code", cacheKey },
                { "state", loginViewModel.State }
            };
            string redirectUrl = QueryHelpers.AddQueryString(loginViewModel.RedirectUrl, parameters);

            return(Redirect(redirectUrl));
        }
Example #2
0
        public async Task <IActionResult> Login()
        {
            CosignLoginResultModel cosignModel = _cosignLoginResultsExtractor.Extract(Request.Query);
            JObject payload = _tcpBackchannel.Send(
                cosignModel.Token,
                _cosignServer.Name,
                _cosignServer.Port,
                _cosignClient.Name,
                _cosignServer.TryCount);

            LoggedinUserModel loggedinUserModel = _payloadExctractor.Exctract(payload);

            string cacheKey = await _loggedUsersStorage.SaveLoginAsync(loggedinUserModel);

            Dictionary <string, string> parameters = new Dictionary <string, string>
            {
                { "code", cacheKey },
                { "state", cosignModel.State }
            };
            string redirectUrl = QueryHelpers.AddQueryString(cosignModel.RedirectUrl, parameters);

            return(Redirect(redirectUrl));
        }