Mercurial > altnet-hispano
comparison 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 |
comparison
equal
deleted
inserted
replaced
114:1ce71844ffa4 | 115:7a2eeb9e9bf9 |
---|---|
1 using System; | 1 using System.Web.Mvc; |
2 using System.Web.Mvc; | |
3 using System.Web.Routing; | 2 using System.Web.Routing; |
4 using System.Web.Security; | 3 using System.Web.Security; |
5 using AltNetHispano.Agendas.Domain; | 4 using AltNetHispano.Agendas.Domain; |
6 using AltNetHispano.Agendas.Factories; | 5 using AltNetHispano.Agendas.Factories; |
7 using AltNetHispano.Agendas.Twitter; | 6 using AltNetHispano.Agendas.Twitter; |
64 { | 63 { |
65 var action = Url.Action("TwitterLogOn"); | 64 var action = Url.Action("TwitterLogOn"); |
66 var url = Request.Url.Scheme + "://" + Request.Url.Host + | 65 var url = Request.Url.Scheme + "://" + Request.Url.Host + |
67 (Request.Url.Port != 80 ? ":" + Request.Url.Port : string.Empty) + action; | 66 (Request.Url.Port != 80 ? ":" + Request.Url.Port : string.Empty) + action; |
68 | 67 |
69 Response.Redirect(oAuth.AuthorizationLinkGet(url).ToString()); | 68 return Redirect(oAuth.AuthorizationLinkGet(url).ToString()); |
70 } | 69 } |
71 else | 70 |
71 var response = oAuth.AccessTokenGet(Request["oauth_token"], Request["oauth_verifier"]); | |
72 if (response.Length > 0) | |
72 { | 73 { |
73 var response = oAuth.AccessTokenGet(Request["oauth_token"], Request["oauth_verifier"]); | 74 var username = OAuthTwitter.GetResponseContent(response, "screen_name"); |
74 if (response.Length > 0) | 75 var nombre = OAuthTwitter.GetResponseContent(response, "name"); |
75 { | |
76 var username = OAuthTwitter.GetResponseContent(response, "screen_name"); | |
77 var nombre = OAuthTwitter.GetResponseContent(response, "name"); | |
78 | 76 |
79 var personaService = AgendaFactory.GetPersonaService(); | 77 var personaService = AgendaFactory.GetPersonaService(); |
80 if (personaService.Validate(IdentityProviderEnum.Twitter, username, nombre)) | 78 personaService.CreateIfNotExist(IdentityProviderEnum.Twitter, username, nombre); |
81 { | 79 |
82 FormsService.SignIn(Identification.Map[(int)IdentityProviderEnum.Twitter]+username, false); | 80 FormsService.SignIn(Identification.Map[(int)IdentityProviderEnum.Twitter]+username, false); |
83 return RedirectToAction("Index", "Home"); | 81 return RedirectToAction("Index", "Home"); |
84 } | |
85 ModelState.AddModelError("", "The user name or password provided is incorrect."); | |
86 } | |
87 } | 82 } |
83 | |
84 ModelState.AddModelError("", "The user name or password provided is incorrect."); | |
88 | 85 |
89 return RedirectToAction("LogOn"); | 86 return RedirectToAction("LogOn"); |
90 } | 87 } |
91 | 88 |
92 // ************************************** | 89 // ************************************** |
109 ViewBag.PasswordLength = MembershipService.MinPasswordLength; | 106 ViewBag.PasswordLength = MembershipService.MinPasswordLength; |
110 return View(); | 107 return View(); |
111 } | 108 } |
112 | 109 |
113 [HttpPost] | 110 [HttpPost] |
114 public ActionResult Register(RegisterModel model) | 111 public ActionResult Register(RegisterModel model, string returnUrl) |
115 { | 112 { |
116 if (ModelState.IsValid) | 113 if (ModelState.IsValid) |
117 { | 114 { |
118 // Attempt to register the user | 115 // Attempt to register the user |
119 MembershipCreateStatus createStatus = MembershipService.CreateUser(model.UserName, model.Password, model.Email); | 116 MembershipCreateStatus createStatus = MembershipService.CreateUser(model.UserName, model.Password, model.Email); |
120 | 117 |
121 if (createStatus == MembershipCreateStatus.Success) | 118 if (createStatus == MembershipCreateStatus.Success) |
122 { | 119 { |
123 var personaService = AgendaFactory.GetPersonaService(); | 120 var personaService = AgendaFactory.GetPersonaService(); |
124 if (personaService.Validate(IdentityProviderEnum.BuiltIn, model.UserName, model.Nombre)) | 121 if (personaService.CreateIfNotExist(IdentityProviderEnum.BuiltIn, model.UserName, model.Nombre)) |
125 { | 122 { |
126 FormsService.SignIn(Identification.Map[(int)IdentityProviderEnum.BuiltIn] + model.UserName, false); | 123 FormsService.SignIn(Identification.Map[(int)IdentityProviderEnum.BuiltIn] + model.UserName, false); |
124 if (Url.IsLocalUrl(returnUrl)) | |
125 return Redirect(returnUrl); | |
127 return RedirectToAction("Index", "Home"); | 126 return RedirectToAction("Index", "Home"); |
128 } | 127 } |
129 } | 128 } |
130 ModelState.AddModelError("", AccountValidation.ErrorCodeToString(createStatus)); | 129 ModelState.AddModelError("", AccountValidation.ErrorCodeToString(createStatus)); |
131 } | 130 } |