Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Web/Controllers/AccountController.cs @ 144:a2b14da4902f
Alta y modificación de ponentes (personas)
author | Nelo@Guinea.neluz.int |
---|---|
date | Mon, 01 Aug 2011 10:25:23 -0300 |
parents | 62dc9fb3a03e |
children | 3c70b0d8bd69 |
rev | line source |
---|---|
115 | 1 using System.Web.Mvc; |
10 | 2 using System.Web.Routing; |
3 using System.Web.Security; | |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
93
diff
changeset
|
4 using AltNetHispano.Agendas.Domain; |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
93
diff
changeset
|
5 using AltNetHispano.Agendas.Factories; |
90
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
6 using AltNetHispano.Agendas.Twitter; |
34
475be11edf56
Ajuste en los nombre de los assemblies y namespaces
nelo@MTEySS.neluz.int
parents:
10
diff
changeset
|
7 using AltNetHispano.Agendas.Web.Models; |
93 | 8 using AltNetHispano.Agendas.Web.Services; |
10 | 9 |
34
475be11edf56
Ajuste en los nombre de los assemblies y namespaces
nelo@MTEySS.neluz.int
parents:
10
diff
changeset
|
10 namespace AltNetHispano.Agendas.Web.Controllers |
10 | 11 { |
12 public class AccountController : Controller | |
13 { | |
14 | |
15 public IFormsAuthenticationService FormsService { get; set; } | |
16 | |
17 protected override void Initialize(RequestContext requestContext) | |
18 { | |
19 if (FormsService == null) { FormsService = new FormsAuthenticationService(); } | |
20 | |
21 base.Initialize(requestContext); | |
22 } | |
23 | |
24 public ActionResult LogOn() | |
25 { | |
26 return View(); | |
27 } | |
28 | |
90
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
29 public ActionResult TwitterLogOn() |
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
30 { |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
93
diff
changeset
|
31 var oAuth = new OAuthTwitter(); |
90
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
32 |
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
33 if (Request["oauth_token"] == null) |
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
34 { |
92
7027cda13de3
Armado de la url de retorno en base a la url del request
Nelo@Kenia.neluz.int
parents:
90
diff
changeset
|
35 var action = Url.Action("TwitterLogOn"); |
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 + |
7027cda13de3
Armado de la url de retorno en base a la url del request
Nelo@Kenia.neluz.int
parents:
90
diff
changeset
|
37 (Request.Url.Port != 80 ? ":" + Request.Url.Port : string.Empty) + action; |
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"); | |
90
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
47 |
115 | 48 var personaService = AgendaFactory.GetPersonaService(); |
49 personaService.CreateIfNotExist(IdentityProviderEnum.Twitter, username, nombre); | |
50 | |
51 FormsService.SignIn(Identification.Map[(int)IdentityProviderEnum.Twitter]+username, false); | |
52 return RedirectToAction("Index", "Home"); | |
90
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
53 } |
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
54 |
115 | 55 ModelState.AddModelError("", "The user name or password provided is incorrect."); |
56 | |
90
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
57 return RedirectToAction("LogOn"); |
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
58 } |
d1688622fa88
Autenticando con twitter (falta emprolijar el código, pero autentica!)
Nelo@Kenia.neluz.int
parents:
34
diff
changeset
|
59 |
10 | 60 public ActionResult LogOff() |
61 { | |
62 FormsService.SignOut(); | |
63 return RedirectToAction("Index", "Home"); | |
64 } | |
65 } | |
66 } |