changeset 50:3ebe89c88caa

Agregando propiedad al Evento sobre el Usuario que lo crea o que realizó la última modificación.
author nelopauselli
date Fri, 13 May 2011 23:29:05 -0300
parents be7a9720fb96
children 4a63a73e38e4
files Agendas/trunk/src/Agendas.Domain/Agenda.cs Agendas/trunk/src/Agendas.Domain/Agendas.Domain.csproj Agendas/trunk/src/Agendas.Domain/Evento.cs Agendas/trunk/src/Agendas.Domain/Exceptions/IdentityContextNotConfiguredException.cs Agendas/trunk/src/Agendas.Domain/ISeguridad.cs Agendas/trunk/src/Agendas.Domain/IdentityContext.cs Agendas/trunk/src/Agendas.Factories/AgendaFactory.cs Agendas/trunk/src/Agendas.Tests/EventoTests.cs Agendas/trunk/src/Agendas.Tests/PonentesTests.cs Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs Agendas/trunk/src/Agendas.Tests/PulicarTests.cs Agendas/trunk/src/Agendas.Tests/TestBase.cs Agendas/trunk/src/Agendas.Tests/TrackTests.cs Agendas/trunk/src/Agendas.Web/Global.asax.cs Agendas/trunk/src/Agendas.Web/HttpContextIdentityProvider.cs
diffstat 15 files changed, 102 insertions(+), 86 deletions(-) [+]
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Fri May 13 22:59:00 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Fri May 13 23:29:05 2011 -0300
@@ -9,17 +9,15 @@
 	{
 		private readonly IPublicador _publicador;
 		private readonly IRecordador _recordador;
-        private readonly ISeguridad _seguridad;
-		private readonly IEventoRepository _eventosRepository;
+	    private readonly IEventoRepository _eventosRepository;
 		private readonly IPonenteRepository _ponenteRepository;
 
-		public Agenda(IPublicador publicador, IRecordador recordador, ISeguridad seguridad, IEventoRepository eventosRepository, IPonenteRepository ponenteRepository)
+		public Agenda(IPublicador publicador, IRecordador recordador, IEventoRepository eventosRepository, IPonenteRepository ponenteRepository)
 		{
 			_publicador = publicador;
 			_ponenteRepository = ponenteRepository;
 			_eventosRepository = eventosRepository;
 			_recordador = recordador;
-            _seguridad = seguridad;
 		}
 
         public void Publicar(string titulo, string ponenteNombre, DateTime? fecha)
@@ -31,8 +29,6 @@
 
         	if (!evento.Fecha.HasValue)
         		throw new ValidationException();
-        	if (NoEstaAutenticado(_seguridad))
-        		throw new UsuarioNoAutenticadoException();
         	if (string.IsNullOrWhiteSpace(evento.Ponente.Nombre))
         		throw new ValidationException();
 
@@ -58,8 +54,6 @@
 
 			if (string.IsNullOrWhiteSpace(evento.Titulo))
 				throw new ValidationException();
-            if (NoEstaAutenticado(_seguridad))
-                throw new UsuarioNoAutenticadoException();
 			_eventosRepository.Save(evento);
 			_ponenteRepository.Save(ponente);
 		}
@@ -74,12 +68,6 @@
             return _eventosRepository.GetEventosConFecha() ?? new List<Evento>();
         }
 
-        private static bool NoEstaAutenticado(ISeguridad seguridad)
-        {
-            return seguridad == null || seguridad.GetPrincipal() == null
-                || string.IsNullOrWhiteSpace(seguridad.GetPrincipal().Identity.Name);
-        }
-
 		public void ModificarEvento(Guid id, string titulo, string ponenteNombre, DateTime? fecha)
 		{
 			var evento = _eventosRepository.Get(id);
--- a/Agendas/trunk/src/Agendas.Domain/Agendas.Domain.csproj	Fri May 13 22:59:00 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Agendas.Domain.csproj	Fri May 13 23:29:05 2011 -0300
@@ -43,7 +43,9 @@
     <Compile Include="Agenda.cs" />
     <Compile Include="CompositePublicador.cs" />
     <Compile Include="Evento.cs" />
+    <Compile Include="Exceptions\IdentityContextNotConfiguredException.cs" />
     <Compile Include="Exceptions\ValidationException.cs" />
+    <Compile Include="IdentityContext.cs" />
     <Compile Include="IRecordador.cs" />
     <Compile Include="ISeguridad.cs" />
     <Compile Include="Ponente.cs" />
--- a/Agendas/trunk/src/Agendas.Domain/Evento.cs	Fri May 13 22:59:00 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Evento.cs	Fri May 13 23:29:05 2011 -0300
@@ -19,6 +19,7 @@
 		public DateTime? Fecha { get; private set; }
 		public string Sintesis { get; private set; }
         public Ponente Ponente { get; private set; }
+        protected string Usuario { get; private set; }
 
 	    private IList<string> _enlaces;
 
@@ -35,6 +36,7 @@
 
 	    public void Actualizar(Ponente ponente, DateTime? fecha)
 	    {
+            Usuario = IdentityContext.GetUserName();
             Ponente = ponente;
 	        Fecha = fecha;
 
@@ -43,18 +45,21 @@
 
 	    public void Actualizar(Ponente ponente)
 	    {
-	        Ponente = ponente;
+            Usuario = IdentityContext.GetUserName();
+            Ponente = ponente;
 	    }
 
 	    public void CambiarTitulo(string titulo)
 	    {
-	        Titulo = titulo;
+            Usuario = IdentityContext.GetUserName();
+            Titulo = titulo;
             AddTracks(new Track(Accion.CambiarTitulo));
 	    }
 
 	    public void Realizado(DateTime fecha, string sintesis, IList<string> enlaces)
 	    {
-	        Fecha = fecha;
+            Usuario = IdentityContext.GetUserName();
+            Fecha = fecha;
 	        Sintesis = sintesis;
 	        _enlaces = enlaces;
 	    }
@@ -66,12 +71,14 @@
 
 	    public void Realizado(string sintesis)
 	    {
-	        Sintesis = sintesis;
+            Usuario = IdentityContext.GetUserName();
+            Sintesis = sintesis;
             AddTracks(new Track(Accion.Realizar));
 	    }
 
 	    public void Publicar(Ponente ponente, DateTime? fecha)
 	    {
+	        Usuario = IdentityContext.GetUserName();
 	        Ponente = ponente;
 	        Fecha = fecha;
             AddTracks(new Track(Accion.Publicar));
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Agendas/trunk/src/Agendas.Domain/Exceptions/IdentityContextNotConfiguredException.cs	Fri May 13 23:29:05 2011 -0300
@@ -0,0 +1,8 @@
+using System;
+
+namespace AltNetHispano.Agendas.Domain.Exceptions
+{
+    public class IdentityContextNotConfiguredException : Exception
+    {
+    }
+}
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Domain/ISeguridad.cs	Fri May 13 22:59:00 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/ISeguridad.cs	Fri May 13 23:29:05 2011 -0300
@@ -1,8 +1,7 @@
-using System.Security.Principal;
-namespace AltNetHispano.Agendas.Domain
+namespace AltNetHispano.Agendas.Domain
 {
     public interface ISeguridad
     {
-        IPrincipal GetPrincipal();
+        string GetUserName();
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Agendas/trunk/src/Agendas.Domain/IdentityContext.cs	Fri May 13 23:29:05 2011 -0300
@@ -0,0 +1,29 @@
+using AltNetHispano.Agendas.Domain.Exceptions;
+
+namespace AltNetHispano.Agendas.Domain
+{
+    public class IdentityContext
+    {
+        private static ISeguridad _current;
+
+        public static ISeguridad Current
+        {
+            private get {
+                if (_current == null)
+                    throw new IdentityContextNotConfiguredException();
+                return _current;
+            }
+            set {
+                _current = value;
+            }
+        }
+
+        public static string GetUserName()
+        {
+            var username = Current.GetUserName();
+            if (string.IsNullOrWhiteSpace(username))
+                throw new UsuarioNoAutenticadoException();
+            return username;
+        }
+    }
+}
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Factories/AgendaFactory.cs	Fri May 13 22:59:00 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Factories/AgendaFactory.cs	Fri May 13 23:29:05 2011 -0300
@@ -6,19 +6,10 @@
     public static class AgendaFactory
     {
     	private static Agenda _agenda;
-		private static ISeguridad _seguridad;
 
-    	public static Agenda GetAgenda()
+        public static Agenda GetAgenda()
         {
-			if (_agenda==null)
-				_agenda = new Agenda(null, null, _seguridad, new EventoRepository(), new PonenteRepository());
-
-            return _agenda;
+            return _agenda ?? (_agenda = new Agenda(null, null, new EventoRepository(), new PonenteRepository()));
         }
-
-    	public static void SetIdentityProvider(ISeguridad seguridad)
-    	{
-    		_seguridad = seguridad;
-    	}
     }
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Tests/EventoTests.cs	Fri May 13 22:59:00 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/EventoTests.cs	Fri May 13 23:29:05 2011 -0300
@@ -8,7 +8,7 @@
 namespace AltNetHispano.Agendas.Tests
 {
 	[TestFixture]
-	public class EventoTests
+    public class EventoTests : TestBase
 	{
 		[Test]
 		public void Van_crud()
--- a/Agendas/trunk/src/Agendas.Tests/PonentesTests.cs	Fri May 13 22:59:00 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/PonentesTests.cs	Fri May 13 23:29:05 2011 -0300
@@ -15,7 +15,7 @@
 			Evento evento = null;
 			publicador.Setup(p => p.Publicar(It.IsAny<Evento>())).Callback<Evento>(e => evento = e);
 
-			var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault, DefaultEventoRepository, DefaultPonenteRepository);
+			var agenda = new Agenda(publicador.Object, null, DefaultEventoRepository, DefaultPonenteRepository);
 
 			agenda.RegistrarPonente("Fabio Maulo", "fabiomaulo@gmail.com", "@fabiomaulo", "http://fabiomaulo.blogspot.com");
 
@@ -39,7 +39,7 @@
 			Evento evento = null;
 			publicador.Setup(p => p.Publicar(It.IsAny<Evento>())).Callback<Evento>(e => evento = e);
 
-			var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault, DefaultEventoRepository, DefaultPonenteRepository);
+			var agenda = new Agenda(publicador.Object, null, DefaultEventoRepository, DefaultPonenteRepository);
 
 			agenda.Publicar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26));
 
@@ -57,7 +57,7 @@
 		{
 			var publicador = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault, DefaultEventoRepository, DefaultPonenteRepository);
+			var agenda = new Agenda(publicador.Object, null, DefaultEventoRepository, DefaultPonenteRepository);
 
 			agenda.Publicar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26));
 			agenda.Publicar("Conform - Parte 2", "Fabio Maulo", new DateTime(2011, 3, 5));
--- a/Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs	Fri May 13 22:59:00 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs	Fri May 13 23:29:05 2011 -0300
@@ -15,10 +15,7 @@
 		[Test]
 		public void Propuesta_de_van_con_usuario_autenticado()
 		{
-            var seguridad = new Mock<ISeguridad>();
-            var agenda = new Agenda(null, null, seguridad.Object, DefaultEventoRepository, DefaultPonenteRepository);
-
-            seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles());
+            var agenda = new Agenda(null, null, DefaultEventoRepository, DefaultPonenteRepository);
 			agenda.Proponer("Van propuesta", null);
 
 			IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos();
@@ -30,7 +27,7 @@
         [Test]
         public void Verificar_propuesta_separada_de_publicacion()
         {
-            var agenda = new Agenda(null, null, SeguridadServiceDefault, DefaultEventoRepository, DefaultPonenteRepository);
+            var agenda = new Agenda(null, null, DefaultEventoRepository, DefaultPonenteRepository);
 
 			agenda.Proponer("Van propuesta", null);
             agenda.Publicar("Van publicada", "jjmontes", DateTime.Now);
@@ -47,8 +44,7 @@
 		{
 			var repository = new Mock<IEventoRepository>();
 
-            var seguridad = new Mock<ISeguridad>();
-            var agenda = new Agenda(null, null, seguridad.Object, repository.Object, DefaultPonenteRepository);
+            var agenda = new Agenda(null, null, repository.Object, DefaultPonenteRepository);
 
 			Assert.Throws<ValidationException>(() => agenda.Proponer(string.Empty, null));
 
@@ -58,11 +54,8 @@
 		[Test]
 		public void Agendar_van_propuesta_sin_fecha()
 		{
-			var seguridad = new Mock<ISeguridad>();
-            var agenda = new Agenda(null, null, seguridad.Object, DefaultEventoRepository, DefaultPonenteRepository);
+            var agenda = new Agenda(null, null, DefaultEventoRepository, DefaultPonenteRepository);
             
-            seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles());
-
 			{
 				agenda.Proponer("Van propuesta", null);
 			}
@@ -77,11 +70,8 @@
 		[Test]
 		public void Agendar_van_propuesta_sin_ponente()
 		{
-			var seguridad = new Mock<ISeguridad>();
-            var agenda = new Agenda(null, null, seguridad.Object, DefaultEventoRepository, DefaultPonenteRepository);
+            var agenda = new Agenda(null, null, DefaultEventoRepository, DefaultPonenteRepository);
             
-            seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles());
-
 			{
 				agenda.Proponer("Van propuesta", null);
 			}
@@ -98,7 +88,7 @@
 		[Test]
 		public void Modificar_y_publicar_van_propuesta()
 		{
-			var agenda = new Agenda(null, null, SeguridadServiceDefault, DefaultEventoRepository, DefaultPonenteRepository);
+			var agenda = new Agenda(null, null, DefaultEventoRepository, DefaultPonenteRepository);
 
 			agenda.Proponer("Van", null);
 			{
@@ -132,10 +122,9 @@
         [Test]
         public void Propuesta_de_van_sin_autenticacion()
         {
-            var seguridad = new Mock<ISeguridad>();
-            var agenda = new Agenda(null, null, seguridad.Object, DefaultEventoRepository, DefaultPonenteRepository);
+            var agenda = new Agenda(null, null, DefaultEventoRepository, DefaultPonenteRepository);
 
-            seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalSinAutenticar());
+            SetCurrentUser(null);
 
             Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Proponer("Inmortalidad de la meduza.", null));
         }
@@ -145,11 +134,7 @@
         {
             var idEventoNoExistente = new Guid("99999999999999999999999999999999");
 
-            var seguridad = new Mock<ISeguridad>();
-            var agenda = new Agenda(null, null, seguridad.Object, DefaultEventoRepository, DefaultPonenteRepository);
-
-            seguridad.Setup(s => s.GetPrincipal()).Returns(
-                SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles());
+            var agenda = new Agenda(null, null, DefaultEventoRepository, DefaultPonenteRepository);
 
             Assert.IsNull(agenda.GetEvento(idEventoNoExistente));
         }
--- a/Agendas/trunk/src/Agendas.Tests/PulicarTests.cs	Fri May 13 22:59:00 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/PulicarTests.cs	Fri May 13 23:29:05 2011 -0300
@@ -1,6 +1,7 @@
 using System;
 using System.Linq;
 using AltNetHispano.Agendas.Domain;
+using AltNetHispano.Agendas.Domain.Exceptions;
 using AltNetHispano.Agendas.Domain.Repositories;
 using Moq;
 using NUnit.Framework;
@@ -15,7 +16,7 @@
 		{
 			var publicador = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault, DefaultEventoRepository, DefaultPonenteRepository);
+			var agenda = new Agenda(publicador.Object, null, DefaultEventoRepository, DefaultPonenteRepository);
 
 			agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now);
 			Assert.AreEqual(1, agenda.GetEventosPublicados().Count);
@@ -24,14 +25,14 @@
 		}
 
 		[Test]
-		public void Publicar_van_sin_usuario_autenticado() {
-			var seguridad = new Mock<ISeguridad>();
-			seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalSinAutenticar());
+		public void Publicar_van_sin_usuario_autenticado()
+		{
+		    SetCurrentUser(null);
 
 			var publicador = new Mock<IPublicador>();
 			var repository = new Mock<IEventoRepository>();
 
-			var agenda = new Agenda(publicador.Object, null, seguridad.Object, repository.Object, DefaultPonenteRepository);
+			var agenda = new Agenda(publicador.Object, null, repository.Object, DefaultPonenteRepository);
 
 			Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now));
 
@@ -42,12 +43,14 @@
 		[Test]
 		public void Publicar_van_sin_servicio_de_seguridad()
 		{
+		    IdentityContext.Current = null;
+
 			var publicador = new Mock<IPublicador>();
 			var repository = new Mock<IEventoRepository>();
 
-			var agenda = new Agenda(publicador.Object, null, null, repository.Object, DefaultPonenteRepository);
+			var agenda = new Agenda(publicador.Object, null, repository.Object, DefaultPonenteRepository);
 
-			Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now));
+            Assert.Throws<IdentityContextNotConfiguredException>(() => agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now));
 			repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0));
 		}
 
@@ -59,7 +62,7 @@
 
 			publicador.Setup(p => p.Publicar(It.IsAny<Evento>())).Throws(new Exception("Error intencional"));
 
-			var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault, repository.Object, DefaultPonenteRepository);
+			var agenda = new Agenda(publicador.Object, null, repository.Object, DefaultPonenteRepository);
 
 			Assert.Throws<Exception>(() => agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now));
 			Assert.AreEqual(0, agenda.GetEventosPublicados().Count);
@@ -76,7 +79,7 @@
 
 			var repository = new Mock<IEventoRepository>();
 
-			var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), null, SeguridadServiceDefault, repository.Object, DefaultPonenteRepository);
+			var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), null, repository.Object, DefaultPonenteRepository);
 
 			agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now);
 
@@ -92,7 +95,7 @@
 			var publicador2 = new Mock<IPublicador>();
 			var recordador1 = new Mock<IRecordador>();
 
-			var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), recordador1.Object, SeguridadServiceDefault, DefaultEventoRepository, DefaultPonenteRepository);
+			var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), recordador1.Object, DefaultEventoRepository, DefaultPonenteRepository);
 
 			agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now);
 
@@ -110,7 +113,7 @@
 			var repository = DefaultEventoRepository;
 			var publicador = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault, repository, DefaultPonenteRepository);
+			var agenda = new Agenda(publicador.Object, null, repository, DefaultPonenteRepository);
 
 			agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now);
 
--- a/Agendas/trunk/src/Agendas.Tests/TestBase.cs	Fri May 13 22:59:00 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/TestBase.cs	Fri May 13 23:29:05 2011 -0300
@@ -8,14 +8,11 @@
 {
 	public class TestBase
 	{
-		protected static ISeguridad SeguridadServiceDefault
+		protected static void SetCurrentUser(string username)
 		{
-			get
-			{
-				var seguridad = new Mock<ISeguridad>();
-				seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles());
-				return seguridad.Object;
-			}
+			var seguridad = new Mock<ISeguridad>();
+			seguridad.Setup(s => s.GetUserName()).Returns(username);
+		    IdentityContext.Current = seguridad.Object;
 		}
 
 		protected static IEventoRepository DefaultEventoRepository
@@ -39,5 +36,12 @@
 		{
 			PonenteRepository.Clear();
 		}
-	}
+
+        [SetUp]
+        public void SetearUsuario()
+        {
+            SetCurrentUser("neluz");
+        }
+
+    }
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Tests/TrackTests.cs	Fri May 13 22:59:00 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/TrackTests.cs	Fri May 13 23:29:05 2011 -0300
@@ -13,7 +13,7 @@
         {
             var repository = DefaultEventoRepository;
 
-            var agenda = new Agenda(null, null, SeguridadServiceDefault, repository, DefaultPonenteRepository);
+            var agenda = new Agenda(null, null, repository, DefaultPonenteRepository);
 
             var fecha = DateTime.Now.AddDays(5);
             agenda.Publicar("Html 5", "jjmontes", fecha);
@@ -36,7 +36,7 @@
         {
             var repository = DefaultEventoRepository;
 
-            var agenda = new Agenda(null, null, SeguridadServiceDefault, repository, DefaultPonenteRepository);
+            var agenda = new Agenda(null, null, repository, DefaultPonenteRepository);
 
             agenda.Publicar("Html 5", "jjmontes", DateTime.Now);
             var evento = repository.GetEventosConFecha().First();
--- a/Agendas/trunk/src/Agendas.Web/Global.asax.cs	Fri May 13 22:59:00 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Web/Global.asax.cs	Fri May 13 23:29:05 2011 -0300
@@ -1,5 +1,6 @@
 using System.Web.Mvc;
 using System.Web.Routing;
+using AltNetHispano.Agendas.Domain;
 using AltNetHispano.Agendas.Factories;
 
 namespace AltNetHispano.Agendas.Web
@@ -33,7 +34,7 @@
             RegisterGlobalFilters(GlobalFilters.Filters);
             RegisterRoutes(RouteTable.Routes);
 
-        	AgendaFactory.SetIdentityProvider(new HttpContextIdentityProvider());
+            IdentityContext.Current = new HttpContextIdentityProvider();
         }
     }
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Web/HttpContextIdentityProvider.cs	Fri May 13 22:59:00 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Web/HttpContextIdentityProvider.cs	Fri May 13 23:29:05 2011 -0300
@@ -1,14 +1,13 @@
-using System.Security.Principal;
-using System.Web;
+using System.Web;
 using AltNetHispano.Agendas.Domain;
 
 namespace AltNetHispano.Agendas.Web
 {
 	public class HttpContextIdentityProvider : ISeguridad
 	{
-		public IPrincipal GetPrincipal()
+		public string GetUserName()
 		{
-			return HttpContext.Current.User;
+			return HttpContext.Current.User.Identity.Name;
 		}
 	}
 }
\ No newline at end of file