Mercurial > altnet-hispano
diff Agendas/trunk/src/Agendas.Web/Controllers/AccountController.cs @ 115:7a2eeb9e9bf9
Crear cuenta interna asociada
author | Nelo@Kenia.neluz.int |
---|---|
date | Sun, 12 Jun 2011 01:40:09 -0300 |
parents | 0bca45e1e664 |
children | 62dc9fb3a03e |
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Web/Controllers/AccountController.cs Sat Jun 11 12:50:44 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Web/Controllers/AccountController.cs Sun Jun 12 01:40:09 2011 -0300 @@ -1,5 +1,4 @@ -using System; -using System.Web.Mvc; +using System.Web.Mvc; using System.Web.Routing; using System.Web.Security; using AltNetHispano.Agendas.Domain; @@ -66,26 +65,24 @@ var url = Request.Url.Scheme + "://" + Request.Url.Host + (Request.Url.Port != 80 ? ":" + Request.Url.Port : string.Empty) + action; - Response.Redirect(oAuth.AuthorizationLinkGet(url).ToString()); + return Redirect(oAuth.AuthorizationLinkGet(url).ToString()); } - else + + var response = oAuth.AccessTokenGet(Request["oauth_token"], Request["oauth_verifier"]); + if (response.Length > 0) { - var response = oAuth.AccessTokenGet(Request["oauth_token"], Request["oauth_verifier"]); - if (response.Length > 0) - { - var username = OAuthTwitter.GetResponseContent(response, "screen_name"); - var nombre = OAuthTwitter.GetResponseContent(response, "name"); + var username = OAuthTwitter.GetResponseContent(response, "screen_name"); + var nombre = OAuthTwitter.GetResponseContent(response, "name"); - var personaService = AgendaFactory.GetPersonaService(); - if (personaService.Validate(IdentityProviderEnum.Twitter, username, nombre)) - { - FormsService.SignIn(Identification.Map[(int)IdentityProviderEnum.Twitter]+username, false); - return RedirectToAction("Index", "Home"); - } - ModelState.AddModelError("", "The user name or password provided is incorrect."); - } + var personaService = AgendaFactory.GetPersonaService(); + personaService.CreateIfNotExist(IdentityProviderEnum.Twitter, username, nombre); + + FormsService.SignIn(Identification.Map[(int)IdentityProviderEnum.Twitter]+username, false); + return RedirectToAction("Index", "Home"); } + ModelState.AddModelError("", "The user name or password provided is incorrect."); + return RedirectToAction("LogOn"); } @@ -111,7 +108,7 @@ } [HttpPost] - public ActionResult Register(RegisterModel model) + public ActionResult Register(RegisterModel model, string returnUrl) { if (ModelState.IsValid) { @@ -121,9 +118,11 @@ if (createStatus == MembershipCreateStatus.Success) { var personaService = AgendaFactory.GetPersonaService(); - if (personaService.Validate(IdentityProviderEnum.BuiltIn, model.UserName, model.Nombre)) + if (personaService.CreateIfNotExist(IdentityProviderEnum.BuiltIn, model.UserName, model.Nombre)) { FormsService.SignIn(Identification.Map[(int)IdentityProviderEnum.BuiltIn] + model.UserName, false); + if (Url.IsLocalUrl(returnUrl)) + return Redirect(returnUrl); return RedirectToAction("Index", "Home"); } }