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 }