public ActionResult Login(AuthModels.Login model) { if (ModelState.IsValid) { string token = null; try { token = HarmonyLogin.GetUserAuthToken(model.Username, model.Password); } catch { } if (string.IsNullOrEmpty(token)) { ModelState.AddModelError("Username", "Invalid username or password"); } if (ModelState.IsValid) { using (var manager = new Manager()) { var user = manager.Users .FirstOrDefault(o => o.HarmonyUsername == model.Username); if (user == null) { user = new User() { HarmonyUsername = model.Username }; } user.HarmonyPassword = ""; user.HarmonyToken = token; user.AlexaToken = RandomString(50); user.AlexaUserID = ""; user.Hostname = model.Hostname; manager.SaveChanges(); string url = ConfigurationManager.AppSettings["AuthUrl"] + "#state=" + Url.Encode(model.State) + "&access_token=" + Url.Encode(user.AlexaToken) + "&token_type=Bearer"; return(Redirect(url)); } } } return(View(model)); }
public ActionResult Network(AuthModels.Network model) { if (ModelState.IsValid) { bool success = false; try { var conn = new HarmonyClientConnection(model.Hostname, 5222); var manualEvent = new ManualResetEvent(false); conn.ClientSocket.OnConnect += (obj) => { success = true; manualEvent.Set(); }; conn.OnSocketError += (obj, ex) => { manualEvent.Set(); }; try { conn.Open(); manualEvent.WaitOne(5000); } finally { try { conn.Close(); } catch { } } } catch { } if (!success) { ModelState.AddModelError("Hostname", "Your Harmony Hub could not be reached"); } if (ModelState.IsValid) { var model2 = new AuthModels.Login { State = model.State, Hostname = Request.UserHostAddress }; return(View("Login", model2)); } } return(View(model)); }
public IActionResult Login([FromBody] AuthModels.Login login) { // login var res = this.Authservice.Login(login.Username, login.Password); if (res.Success) { // set auth key for session SetAuth(res.UserId, res.AuthKey); return(SuccessResponse("/account")); } // return error return(ErrorResponse(res.Errors)); }
public async Task <IActionResult> Login([FromBody] AuthModels.Login login) { // login var res = await Authservice.Login(login.Username, login.Password); if (res.Success) { // set auth key for session SetAuth(res.UserId, res.AuthKey); // return to listing screen on login return(SuccessResponse("/employee/listing")); } // return error return(ErrorResponse(res.Errors)); }