public MemberUserData(Member member)
 {
     Id = member.Id;
     Username = member.Email;
     DisplayName = string.Format("{0}", member.Name);
     Roles = new[] { "User" };
     Type = "User";
 }
 public AdminUserData(Member member)
 {
     Id = member.Id;
     Username = member.Email;
     DisplayName = string.Format("{0}", member.Name);
     Roles = new string[] { "Admin" };
     Type = "Admin";
 }
        public void Authenticate(Member member)
        {
            switch (member.Role)
            {
                case MemberRole.Admin: AddFormsCookie(new UserModels.AdminUserData(member));
                    break;
                case MemberRole.User: AddFormsCookie(new UserModels.MemberUserData(member));
                    break;
            }

            var claims = new List<Claim>
                             {
                                 new Claim("Username", member.Email),
                                 new Claim(ClaimTypes.Name, member.Name),
                                 new Claim(ClaimTypes.Email, member.Email),
                                 new Claim(ClaimTypes.Role, member.Role.ToString())
                             };

            var claimsIdentity = new ClaimsIdentity(claims, "Basic", "Username", ClaimTypes.Role);
            Thread.CurrentPrincipal = new ClaimsPrincipal(claimsIdentity);
        }