public override Task OnConnected() { string userId = Guid.Empty.ToString(); OllertUser currentUser = null; if (Context.User != null) { var db = new Ollert.DAL.OllertDbContext(); userId = Context.User.Identity.GetUserId(); currentUser = db.Users.First(u => u.Id == userId); } string connectionId = Context.ConnectionId; var user = ConnectedUsers.GetOrAdd(userId, _ => new User { UserName = Context.User != null ? Context.User.Identity.Name : "<anonyme>", UserId = userId, UseGravatar = currentUser != null ? currentUser.UseGravatar : false, EmailMd5 = currentUser != null ? currentUser.EmailMd5 : string.Empty, ConnectionIds = new HashSet <string>() }); lock (user.ConnectionIds) { user.ConnectionIds.Add(connectionId); } this.Clients.All.onConnected(ConnectedUsers.Select(u => u.Value)); return(base.OnConnected()); }
private async Task SignInAsync(OllertUser user, bool isPersistent) { AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie); var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie); AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity); }
public async Task <ActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl) { if (User.Identity.IsAuthenticated) { return(RedirectToAction("Manage")); } if (ModelState.IsValid) { // Get the information about the user from the external login provider var info = await AuthenticationManager.GetExternalLoginInfoAsync(); if (info == null) { return(View("ExternalLoginFailure")); } var user = new OllertUser() { UserName = model.UserName }; var result = await UserManager.CreateAsync(user); if (result.Succeeded) { result = await UserManager.AddLoginAsync(user.Id, info.Login); if (result.Succeeded) { await SignInAsync(user, isPersistent : false); return(RedirectToLocal(returnUrl)); } } AddErrors(result); } ViewBag.ReturnUrl = returnUrl; return(View(model)); }
protected override void Seed(Ollert.DAL.OllertDbContext context) { // This method will be called after migrating to the latest version. var userManager = new UserManager <OllertUser>(new UserStore <OllertUser>(context)); var user = new OllertUser() { UserName = "******" }; var userResult = userManager.Create(user, "123456"); // You can use the DbSet<T>.AddOrUpdate() helper extension method // to avoid creating duplicate seed data. E.g. // var admin = context.Users.First(u => u.UserName == "Admin"); var salle = new Salle { Nom = "Development", Proprietaire = admin }; context.Salles.AddOrUpdate(T => T.Nom, salle); var carte = new Carte { Titre = "Card example 1", Description = @"Do it really!", NumeroDemande = 40, DateCreation = DateTime.Now, Etapes = new List <CarteEtape> { new CarteEtape { Estimation = 1200, Position = 0, Terminee = false, Titre = "Total" } } }; var tableau1 = new Tableau { Nom = "Waiting", Position = 0, Salle = salle }; tableau1.Cartes.Add(carte); var message = new Message { Texte = "Hi, do it quickly!", CreateOn = DateTime.Now, Utilisateur = context.Users.First() }; carte.Messages = new List <Message> { message }; context.Tableaux.AddOrUpdate( T => T.Nom, tableau1, new Tableau { Nom = "Pending", Position = 1, Salle = salle }, new Tableau { Nom = "Accepted", Position = 2, Salle = salle }, new Tableau { Nom = "Development", Position = 3, Salle = salle }, new Tableau { Nom = "Tests", Position = 4, Salle = salle }, new Tableau { Nom = "Done", Position = 5, Salle = salle } ); //var db = new OllertDbContext(); var david = new OllertUser() { UserName = "******", Email = "*****@*****.**", Avatar = System.IO.File.ReadAllBytes(this.MapPath("~/Content/images/avatar/david.png")) }; var yannick = new OllertUser() { UserName = "******", Email = "*****@*****.**", Avatar = System.IO.File.ReadAllBytes(this.MapPath("~/Content/images/avatar/yannick.png")) }; var r1 = userManager.Create(david, "123456"); var r2 = userManager.Create(yannick, "123456"); }