Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Web/Controllers/AccountController.cs @ 254:478656b70afb
Tag deploy 2011-10-07 v1.0.3 para conjunto de cambios 7cf64cd790ab añadido
author | Administrador@DESA-WIN-002.cpe.telecentro.net.ar |
---|---|
date | Mon, 17 Oct 2011 07:41:32 -0300 |
parents | b921a0ab8504 |
children | 72a96459f910 |
rev | line source |
---|---|
115 | 1 using System.Web.Mvc; |
10 | 2 using System.Web.Routing; |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
93
diff
changeset
|
3 using AltNetHispano.Agendas.Domain; |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
93
diff
changeset
|
4 using AltNetHispano.Agendas.Factories; |
90
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
5 using AltNetHispano.Agendas.Twitter; |
93 | 6 using AltNetHispano.Agendas.Web.Services; |
10 | 7 |
34
475be11edf56
Ajuste en los nombre de los assemblies y namespaces
nelo@MTEySS.neluz.int
parents:
10
diff
changeset
|
8 namespace AltNetHispano.Agendas.Web.Controllers |
10 | 9 { |
10 public class AccountController : Controller | |
11 { | |
179 | 12 private IFormsAuthenticationService _formsService; |
10 | 13 |
14 protected override void Initialize(RequestContext requestContext) | |
15 { | |
179 | 16 if (_formsService == null) { _formsService = new FormsAuthenticationService(); } |
17 | |
18 base.Initialize(requestContext); | |
10 | 19 } |
20 | |
21 public ActionResult LogOn() | |
22 { | |
23 return View(); | |
24 } | |
25 | |
206
beeb06da4398
Al querés ingresar a un lugar que requiere autenticación y luego de autenticarse, vuelve a la página donde quería entrar
nelopauselli
parents:
179
diff
changeset
|
26 public ActionResult TwitterLogOn(string returnUrl) |
90
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
27 { |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
93
diff
changeset
|
28 var oAuth = new OAuthTwitter(); |
90
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
29 |
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
30 if (Request["oauth_token"] == null) |
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
31 { |
92
7027cda13de3
Armado de la url de retorno en base a la url del request
Nelo@Kenia.neluz.int
parents:
90
diff
changeset
|
32 var action = Url.Action("TwitterLogOn"); |
206
beeb06da4398
Al querés ingresar a un lugar que requiere autenticación y luego de autenticarse, vuelve a la página donde quería entrar
nelopauselli
parents:
179
diff
changeset
|
33 if (!string.IsNullOrWhiteSpace(returnUrl)) |
beeb06da4398
Al querés ingresar a un lugar que requiere autenticación y luego de autenticarse, vuelve a la página donde quería entrar
nelopauselli
parents:
179
diff
changeset
|
34 action += "?ReturnUrl=" + returnUrl; |
beeb06da4398
Al querés ingresar a un lugar que requiere autenticación y luego de autenticarse, vuelve a la página donde quería entrar
nelopauselli
parents:
179
diff
changeset
|
35 |
92
7027cda13de3
Armado de la url de retorno en base a la url del request
Nelo@Kenia.neluz.int
parents:
90
diff
changeset
|
36 var url = Request.Url.Scheme + "://" + Request.Url.Host + |
206
beeb06da4398
Al querés ingresar a un lugar que requiere autenticación y luego de autenticarse, vuelve a la página donde quería entrar
nelopauselli
parents:
179
diff
changeset
|
37 (Request.Url.Port != 80 ? ":" + Request.Url.Port : string.Empty) + action; |
92
7027cda13de3
Armado de la url de retorno en base a la url del request
Nelo@Kenia.neluz.int
parents:
90
diff
changeset
|
38 |
115 | 39 return Redirect(oAuth.AuthorizationLinkGet(url).ToString()); |
90
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
40 } |
115 | 41 |
42 var response = oAuth.AccessTokenGet(Request["oauth_token"], Request["oauth_verifier"]); | |
43 if (response.Length > 0) | |
90
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
44 { |
115 | 45 var username = OAuthTwitter.GetResponseContent(response, "screen_name"); |
46 var nombre = OAuthTwitter.GetResponseContent(response, "name"); | |
174
3c70b0d8bd69
Ticket 159: Corrección temporal. Al obtener el nombre se remplazan los caracteres erróneos por los que corresponde.
juanjose.montesdeocaarbos
parents:
142
diff
changeset
|
47 //TOD: Esto es temporal. |
213
b921a0ab8504
Ticket 159: Se corrigió nombres de Twitter con caracteres inválidos (á, é, í, ó, ú, ñ y sus mayúsculas).
juanjose.montesdeocaarbos
parents:
206
diff
changeset
|
48 nombre = nombre.Replace("\\u00e1", "á"); |
b921a0ab8504
Ticket 159: Se corrigió nombres de Twitter con caracteres inválidos (á, é, í, ó, ú, ñ y sus mayúsculas).
juanjose.montesdeocaarbos
parents:
206
diff
changeset
|
49 nombre = nombre.Replace("\\u00e9", "é"); |
b921a0ab8504
Ticket 159: Se corrigió nombres de Twitter con caracteres inválidos (á, é, í, ó, ú, ñ y sus mayúsculas).
juanjose.montesdeocaarbos
parents:
206
diff
changeset
|
50 nombre = nombre.Replace("\\u00ed", "í"); |
b921a0ab8504
Ticket 159: Se corrigió nombres de Twitter con caracteres inválidos (á, é, í, ó, ú, ñ y sus mayúsculas).
juanjose.montesdeocaarbos
parents:
206
diff
changeset
|
51 nombre = nombre.Replace("\\u00f3", "ó"); |
b921a0ab8504
Ticket 159: Se corrigió nombres de Twitter con caracteres inválidos (á, é, í, ó, ú, ñ y sus mayúsculas).
juanjose.montesdeocaarbos
parents:
206
diff
changeset
|
52 nombre = nombre.Replace("\\u00fa", "ú"); |
b921a0ab8504
Ticket 159: Se corrigió nombres de Twitter con caracteres inválidos (á, é, í, ó, ú, ñ y sus mayúsculas).
juanjose.montesdeocaarbos
parents:
206
diff
changeset
|
53 nombre = nombre.Replace("\\u00c1", "Á"); |
b921a0ab8504
Ticket 159: Se corrigió nombres de Twitter con caracteres inválidos (á, é, í, ó, ú, ñ y sus mayúsculas).
juanjose.montesdeocaarbos
parents:
206
diff
changeset
|
54 nombre = nombre.Replace("\\u00c9", "É"); |
b921a0ab8504
Ticket 159: Se corrigió nombres de Twitter con caracteres inválidos (á, é, í, ó, ú, ñ y sus mayúsculas).
juanjose.montesdeocaarbos
parents:
206
diff
changeset
|
55 nombre = nombre.Replace("\\u00cd", "Í"); |
b921a0ab8504
Ticket 159: Se corrigió nombres de Twitter con caracteres inválidos (á, é, í, ó, ú, ñ y sus mayúsculas).
juanjose.montesdeocaarbos
parents:
206
diff
changeset
|
56 nombre = nombre.Replace("\\u00d3", "Ó"); |
b921a0ab8504
Ticket 159: Se corrigió nombres de Twitter con caracteres inválidos (á, é, í, ó, ú, ñ y sus mayúsculas).
juanjose.montesdeocaarbos
parents:
206
diff
changeset
|
57 nombre = nombre.Replace("\\u00da", "Ú"); |
b921a0ab8504
Ticket 159: Se corrigió nombres de Twitter con caracteres inválidos (á, é, í, ó, ú, ñ y sus mayúsculas).
juanjose.montesdeocaarbos
parents:
206
diff
changeset
|
58 nombre = nombre.Replace("\\u00f1", "ñ"); |
b921a0ab8504
Ticket 159: Se corrigió nombres de Twitter con caracteres inválidos (á, é, í, ó, ú, ñ y sus mayúsculas).
juanjose.montesdeocaarbos
parents:
206
diff
changeset
|
59 nombre = nombre.Replace("\\u00d1", "Ñ"); |
90
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
60 |
115 | 61 var personaService = AgendaFactory.GetPersonaService(); |
62 personaService.CreateIfNotExist(IdentityProviderEnum.Twitter, username, nombre); | |
63 | |
179 | 64 _formsService.SignIn(Identification.Map[(int)IdentityProviderEnum.Twitter]+username, false); |
206
beeb06da4398
Al querés ingresar a un lugar que requiere autenticación y luego de autenticarse, vuelve a la página donde quería entrar
nelopauselli
parents:
179
diff
changeset
|
65 |
beeb06da4398
Al querés ingresar a un lugar que requiere autenticación y luego de autenticarse, vuelve a la página donde quería entrar
nelopauselli
parents:
179
diff
changeset
|
66 if (!string.IsNullOrWhiteSpace(returnUrl)) |
beeb06da4398
Al querés ingresar a un lugar que requiere autenticación y luego de autenticarse, vuelve a la página donde quería entrar
nelopauselli
parents:
179
diff
changeset
|
67 return Redirect(returnUrl); |
115 | 68 return RedirectToAction("Index", "Home"); |
90
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
69 } |
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
70 |
115 | 71 ModelState.AddModelError("", "The user name or password provided is incorrect."); |
72 | |
90
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
73 return RedirectToAction("LogOn"); |
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
74 } |
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
75 |
10 | 76 public ActionResult LogOff() |
77 { | |
179 | 78 _formsService.SignOut(); |
10 | 79 return RedirectToAction("Index", "Home"); |
80 } | |
81 } | |
82 } |