DefconDotNet

Untitled

Jun 5th, 2012
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.46 KB | None | 0 0
  1. using Freelancers.Infrastructure;
  2. using Freelancers.Infrastructure.Helpers;
  3. using Freelancers.Model;
  4. using Freelancers.Services.Interfaces;
  5.  
  6. namespace Freelancers.UI.Helpers
  7. {
  8.     public class SessionHelper : ISessionHelper
  9.     {
  10.         private const string AuthenticatedUserKey = "AuthenticatedUser";
  11.         private readonly IUserService _userService;
  12.  
  13.         public SessionHelper(IUserService userService)
  14.         {
  15.             _userService = userService;
  16.         }
  17.  
  18.         public User AuthenticatedUser()
  19.         {
  20.             var httpContext = HttpContextFactory.Current;
  21.             Ensure.NotNull(httpContext, "httpContext");
  22.  
  23.             if (httpContext.Session != null)
  24.             {
  25.                 var currentUser = (User) httpContext.Session[AuthenticatedUserKey];
  26.                 if (currentUser == null && httpContext.User.Identity.IsAuthenticated)
  27.                 {
  28.                     currentUser = _userService.GetUser(httpContext.User.Identity.Name);
  29.                    
  30.                     httpContext.Session[AuthenticatedUserKey] = currentUser;
  31.                 }
  32.  
  33.                 return currentUser;
  34.             }
  35.  
  36.             return null;
  37.         }
  38.  
  39.         public void Clear()
  40.         {
  41.             var httpContext = HttpContextFactory.Current;
  42.             Ensure.NotNull(httpContext, "httpContext");
  43.            
  44.             if (httpContext.Session != null)
  45.                 httpContext.Session.Clear();
  46.         }
  47.     }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment