public ActionResult Index(string login) { var webClient = new WebClient(); Stream stream = null; try { stream = webClient.OpenRead(APIUrl.Login(login)); } catch (WebException ex) { if (((HttpWebResponse)ex.Response).StatusCode == HttpStatusCode.NotFound) { ModelState.AddModelError(string.Empty, "Usário não encontrado."); return(View()); } if (((HttpWebResponse)ex.Response).StatusCode == HttpStatusCode.BadRequest) { ModelState.AddModelError(string.Empty, "Informe um login."); return(View()); } } var retorno = new StreamReader(stream).ReadToEnd(); var obj = JObject.Parse(retorno); var usuario = Helpers.ToUsuario(obj); FormsAuthentication.SetAuthCookie(usuario.Id, false); var authTicket = new FormsAuthenticationTicket(1, usuario.Id, DateTime.Now, DateTime.Now.AddMinutes(20), false, usuario.Tipo); string encryptedTicket = FormsAuthentication.Encrypt(authTicket); var authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); Response.Cookies.Add(authCookie); var infoCookie = new HttpCookie("infoCookie", usuario.Nome); Response.Cookies.Add(infoCookie); if (usuario.Tipo == "Professor") { return(RedirectToAction("Index", "Professor")); } return(RedirectToAction("Index", "Aluno")); }