public void TestConstructor2() { var h = MongoUser.HashPassword("u", "p"); var u = new MongoUser("u", h, true); Assert.AreEqual("u", u.Username); Assert.AreEqual(h, u.PasswordHash); Assert.AreEqual(true, u.IsReadOnly); }
public void TestConstructor1() { var u = new MongoUser("u", new PasswordEvidence("p"), true); var ph = MongoUser.HashPassword("u", "p"); Assert.AreEqual("u", u.Username); Assert.AreEqual(ph, u.PasswordHash); Assert.AreEqual(true, u.IsReadOnly); }
public static User ToDomainEntity(this MongoUser user, IEnumerable <MongoProject> projects = null) { var projs = projects?.Select(p => new BasicProject(p.Id.ToDomainIdentity(), p.Name)); return(new User( user.Id.ToDomainIdentity(), user.Username, user.DisplayName, user.Password, projs)); }
public static UseCase ToDomainEntity(this MongoUseCase useCase, MongoUser author, MongoProject project) { return(new UseCase( useCase.Id.ToDomainIdentity(), new BasicProject(project.Id.ToDomainIdentity(), project.Name), new BasicUser(author.Id.ToDomainIdentity(), author.DisplayName), useCase.Title, useCase.Note, useCase.Steps.Select(x => new UseCase.UseCaseStep { Content = x }))); //OrderMarker probably isnt needed }
//这里有个漏洞,对于数据库来说,对于local的验证和对于admin的验证是相同的。 //如果是加入用户到服务器中,是加入到local还是admin,需要考虑一下。 /// <summary> /// Add A User to Admin database /// </summary> /// <param name="strUser">Username</param> /// <param name="password">Password</param> /// <param name="isReadOnly">Is ReadOnly</param> public static void AddUserToSvr(String strUser, String password, Boolean isReadOnly) { MongoServer mongoSvr = SystemManager.GetCurrentServer(); //必须使用MongoCredentials来添加用户不然的话,Password将使用明文登入到数据库中! //这样的话,在使用MongoCredentials登入的时候,会发生密码错误引发的认证失败 MongoUser newUser = new MongoUser(strUser, password, true); if (mongoSvr.GetDatabase(DATABASE_NAME_ADMIN).FindUser(strUser) == null) { mongoSvr.GetDatabase(DATABASE_NAME_ADMIN).AddUser(newUser); } }
protected ObjectId GetAuthUserId() { if (System.Web.HttpContext.Current.User != null) { MongoUser user = db.GetItem <MongoUser>(x => x.UserName == System.Web.HttpContext.Current.User.Identity.Name); if (user != null) { return(user._id); } } return(ObjectId.Empty); }
public static void Menu(string e, MongoUser m, NeoUser n) { Console.WriteLine("Do you want to:\n 1-Find new friend \n " + "2-Write a post\n" + "3-Look over s-bodies post\n" + "4-Go out"); var x = Console.ReadLine(); switch (x) { case "1": Console.WriteLine("Write name of searched person "); string N = Console.ReadLine(); Console.WriteLine("Write surname now"); string S = Console.ReadLine(); if (n.Relationship == true) { Console.WriteLine("There is relationship"); } else { Console.WriteLine("There is not relationship"); } Console.WriteLine("The lenght is", n.PathBetweenID(e, S)); m.ToFollow(N, S, e); n.Follow(e, S); Menu(e, m, n); break; case "3": Console.WriteLine("Write name of searched person "); N = Console.ReadLine(); Console.WriteLine("Write surname now"); S = Console.ReadLine(); m.PostReaction(N, S, e); Menu(e, m, n); break; case "2": m.CreatePost(e); Menu(e, m, n); break; case "4": Console.WriteLine("Bye:("); Thread.Sleep(1000); System.Environment.Exit(20); break; } }
public ActionResult Login(MongoUser user, string returnUrl) { var isValidUser = ValidateUser(user); if (isValidUser) { FormsAuthentication.SetAuthCookie(user.Email, false); return(Redirect(returnUrl ?? "/Home/Index")); } return(View(user)); }
public static void Menu(string e, MongoUser m, NeoUser n, CassandraUser c) { Console.WriteLine("Do you want to:\n 1 Find new friend \n " + "2-Write a post\n" + "3-Look over s-bodies post\n" + "4-Go out"); var x = Console.ReadLine(); switch (x) { case "1": Console.WriteLine("Write FirstName of searched person "); string FN = Console.ReadLine(); Console.WriteLine("Write LastName"); string LN = Console.ReadLine(); if (n.Relationship == true) { Console.WriteLine("There is relationship"); } else { Console.WriteLine("There is not relationship"); } Console.WriteLine("The lenght is", n.PathBetweenID(e, LN)); m.ToFollow(FN, LN, e); n.Follow(e, LN); Menu(e, m, n, c); break; case "2": ISession session; c.NewPost(session); break; case "3": Console.WriteLine("Write FirstName of searched person "); N = Console.ReadLine(); Console.WriteLine("Write LastName"); S = Console.ReadLine(); m.PostReaction(N, S, e); Menu(e, m, n); break; case "4": Console.WriteLine("Bye:("); Thread.Sleep(1000); System.Environment.Exit(20); break; } }
private static User Map(MongoUser user) { return(new User { Id = user.Id, FirstName = user.FirstName, LastName = user.LastName, AddedDateTime = user.AddedDateTime, ScreenName = user.ScreenName, AdditionalInfo = user.AdditionalInfo, Photo = user.Photo, LastOnline = user.LastOnline }); }
private async Task LoadSharedKeyAndQrCodeUriAsync(MongoUser user, EnableAuthenticatorViewModel model) { var unformattedKey = await _userManager.GetAuthenticatorKeyAsync(user); if (string.IsNullOrEmpty(unformattedKey)) { await _userManager.ResetAuthenticatorKeyAsync(user); unformattedKey = await _userManager.GetAuthenticatorKeyAsync(user); } model.SharedKey = FormatKey(unformattedKey); model.AuthenticatorUri = GenerateQrCodeUri(user.Email, unformattedKey); }
public void InsertUser(string name, string password) { if (string.IsNullOrEmpty(name)) { throw new ArgumentException(name); } if (string.IsNullOrEmpty(password)) { throw new ArgumentException(password); } var mongoUser = new MongoUser(name, new PasswordEvidence(password), false); _database.AddUser(mongoUser); }
private LoginResponse ObterRespostaToken(string encodedToken, MongoUser user, IEnumerable <Claim> claims) { return(new LoginResponse { AccessToken = encodedToken, ExpiresIn = TimeSpan.FromHours(_appSettings.ExpiracaoHoras).TotalSeconds, UsuarioToken = new UserTokenResponse { Id = user.Id.ToString(), Email = user.Email, Claims = claims.Select(c => new UserClaimResponse { Type = c.Type, Value = c.Value }) } }); }
public override bool Execute() { this.Log.LogMessage(string.Format("Adding user '{0}' into database '{1}'", this.UserName, this.Database)); try { MongoUser user = this.GetMongoUser(); this.Database.AddUser(user); } catch (Exception ex) { this.Log.LogErrorFromException(ex); return(false); } this.Log.LogMessage(string.Format("User '{0}' was successfully added", this.UserName)); return(true); }
public override bool ChangePassword(string username, string oldPwd, string newPwd) { bool retval = false; if (ValidateUser(username, oldPwd)) { ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, newPwd, true); OnValidatingPassword(args); if (args.Cancel) { if (args.FailureInformation != null) { throw args.FailureInformation; } else { throw new MembershipPasswordException("Change password canceled due to new password validation failure."); } } MongoUser user = null; var db = MongoDatabase.Create(ConnectionString); using (db.RequestStart()) { var users = db.GetCollection <MongoUser>(typeof(MongoUser).Name); user = users.AsQueryable().SingleOrDefault(u => u.UserName == username); if (user == null) { throw new ProviderException("This user does not exist."); } user.Password = EncodePassword(newPwd); user.LastPasswordChangedDate = DateTime.Now; users.Save(user); } retval = true; } return(retval); }
public ActionResult Register(WholeUser user, string returnUrl) { ViewBag.roleID = new SelectList(db.Roles, "id", "name"); byte[] salt; new RNGCryptoServiceProvider().GetBytes(salt = new byte[16]); var pbkdf2 = new Rfc2898DeriveBytes(user.password, salt, 1000); byte[] hash = pbkdf2.GetBytes(20); byte[] hashBytes = new byte[36]; Array.Copy(salt, 0, hashBytes, 0, 16); Array.Copy(hash, 0, hashBytes, 16, 20); string savedPasswordHash = Convert.ToBase64String(hashBytes); var mongoUser = new MongoUser() { Email = user.email, Password = savedPasswordHash }; var client = new MongoClient("mongodb+srv://alfex971:[email protected]/test?retryWrites=true"); var mongoDatabase = client.GetDatabase("Accessories"); var collection = mongoDatabase.GetCollection <MongoUser>("User"); collection.InsertOne(mongoUser); var sqlUser = new User() { email = user.email, name = user.name, phone = user.phone, roleID = 1, }; var savedUser = usersDao.InsertUser(sqlUser); FormsAuthentication.SetAuthCookie(user.email, false); return(Redirect("/Home/Index")); }
protected void EnsureAccessRights() { var url = new MongoUrl(this.ConnectionString); MongoClientSettings settings = MongoClientSettings.FromUrl(url); settings.DefaultCredentials = null; MongoCredentials adminCredentials = this.GetAdminCredentials(); var client = new MongoClient(settings); MongoServer server = client.GetServer(); MongoDatabase adminDatabase = server.GetDatabase(this.MongoAdministratorDatabase); MongoUser user = adminDatabase.FindUser(this.MongoAdministratorName); if (IsUserAdmin(user)) { return; } user = new MongoUser(adminCredentials, false); adminDatabase.AddUser(user); server.Disconnect(); }
public void TestEquals() { var a1 = new MongoUser("u", "h", false); var a2 = new MongoUser("u", "h", false); var a3 = a2; var b = new MongoUser("x", "h", false); var c = new MongoUser("u", "x", false); var d = new MongoUser("u", "h", true); var null1 = (MongoUser)null; var null2 = (MongoUser)null; Assert.AreNotSame(a1, a2); Assert.AreSame(a2, a3); Assert.IsTrue(a1.Equals((object)a2)); Assert.IsFalse(a1.Equals((object)null)); Assert.IsFalse(a1.Equals((object)"x")); Assert.IsTrue(a1 == a2); Assert.IsTrue(a2 == a3); Assert.IsFalse(a1 == b); Assert.IsFalse(a1 == c); Assert.IsFalse(a1 == d); Assert.IsFalse(a1 == null1); Assert.IsFalse(null1 == a1); Assert.IsTrue(null1 == null2); Assert.IsFalse(a1 != a2); Assert.IsFalse(a2 != a3); Assert.IsTrue(a1 != b); Assert.IsTrue(a1 != c); Assert.IsTrue(a1 != d); Assert.IsTrue(a1 != null1); Assert.IsTrue(null1 != a1); Assert.IsFalse(null1 != null2); Assert.AreEqual(a1.GetHashCode(), a2.GetHashCode()); }
public IActionResult Post([FromForm] RegisterViewModel model) { var user = new User(model); var group = groupsCollection.Find(g => g.GroupId == user.GroupId).FirstOrDefault(); if (group.Users.Count() == 0) { groupsCollection.UpdateOne(g => g.GroupId == user.GroupId, Builders <Group> .Update.Set(e => e.GroupLeaderId, user.Id)); } var update = Builders <Group> .Update.Push(g => g.Users, user.Id); var updateRes = groupsCollection.UpdateOne(g => g.GroupId == user.GroupId, update); if (updateRes.MatchedCount == 0) { return(NotFound("Group with this id not found")); } usersCollection.InsertOne(user); if (ModelState.IsValid) { var userAccount = new MongoUser { UserName = model.Username, Email = model.Email }; var result = _userManager.CreateAsync(userAccount, model.Password).Result; if (result.Succeeded) { _signInManager.SignInAsync(userAccount, isPersistent: false).Wait(); HttpContext.Session.SetString("userId", usersCollection .Find(a => a.Username == model.Username) .FirstOrDefault() .Id .ToString()); } } return(new ObjectResult(user)); }
public MongoUser GetUserFromModel(UserCreateUserRegistration model) { MongoUser user = new MongoUser(); return(user); }
private static bool IsUserAdmin(MongoUser user) { return(user != null && !user.IsReadOnly); }
private async Task LoadAsync(MongoUser user) { var userName = await _userManager.GetUserNameAsync(user); Username = userName; }
public async Task <IActionResult> OnGetCallbackAsync(string returnUrl = null, string remoteError = null) { returnUrl = returnUrl ?? Url.Content("~/"); if (remoteError != null) { ErrorMessage = $"Error from external provider: {remoteError}"; return(RedirectToPage("./Login", new { ReturnUrl = returnUrl })); } var info = await _signInManager.GetExternalLoginInfoAsync(); if (info == null) { ErrorMessage = "Error loading external login information."; return(RedirectToPage("./Login", new { ReturnUrl = returnUrl })); } // Sign in the user with this external login provider if the user already has a login. var result = await _signInManager.ExternalLoginSignInAsync(info.LoginProvider, info.ProviderKey, isPersistent : false, bypassTwoFactor : true); if (result.Succeeded) { _logger.LogInformation("{Name} logged in with {LoginProvider} provider.", info.Principal.Identity.Name, info.LoginProvider); return(LocalRedirect(returnUrl)); } if (result.IsLockedOut) { return(RedirectToPage("./Lockout")); } else { // If the user does not have an account, then ask the user to create an account. ReturnUrl = returnUrl; ProviderDisplayName = info.ProviderDisplayName; if (!info.Principal.HasClaim(c => c.Type == ClaimTypes.Name)) { ErrorMessage = "Missing username claim"; return(RedirectToPage("./Login", new { ReturnUrl = returnUrl })); } string userName = info.Principal.FindFirst(ClaimTypes.Name).Value; var user = new MongoUser { UserName = userName }; var userRes = await _userManager.CreateAsync(user); if (userRes.Succeeded) { userRes = await _userManager.AddLoginAsync(user, info); if (userRes.Succeeded) { _logger.LogInformation("User created an account using {Name} provider.", info.LoginProvider); await _signInManager.SignInAsync(user, isPersistent : false, info.LoginProvider); return(RedirectToPage("./Manage/Index")); } } foreach (var error in userRes.Errors) { ModelState.AddModelError(string.Empty, error.Description); } ProviderDisplayName = info.ProviderDisplayName; ReturnUrl = returnUrl; return(Page()); } }
public void AddMongoUser(MongoUser mongoUser) { IMongoCollection<BsonDocument> usersCollection = GetMongoCollection("usersNET"); usersCollection.InsertOneAsync(mongoUser.ToBsonDocument()); }
public void Create(IUser user) { var mongoUser = MongoUser.FromUser(user); collection.InsertOne(mongoUser); }
public void AddUser(MongoUser user) { _mongoDatabase.AddUser(user); }
public void RemoveUser(MongoUser user) { _mongoDatabase.RemoveUser(user); }
public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status) { MembershipCreateStatus tempStatus = new MembershipCreateStatus(); MembershipUser retval = null; ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, password, true); OnValidatingPassword(args); if (args.Cancel) { tempStatus = MembershipCreateStatus.InvalidPassword; } else if (RequiresUniqueEmail && !string.IsNullOrWhiteSpace(GetUserNameByEmail(email))) { tempStatus = MembershipCreateStatus.DuplicateEmail; } else { MembershipUser user = GetUser(username, false); if (user == null) { ObjectId id = default(ObjectId); string key = providerUserKey != null?providerUserKey.ToString() : null; if (!string.IsNullOrWhiteSpace(key) && !ObjectId.TryParse(key, out id)) { tempStatus = MembershipCreateStatus.InvalidProviderUserKey; } else { var now = DateTime.Now; var newUser = new MongoUser() { _id = id, UserName = username, Password = EncodePassword(password), Email = email, PasswordQuestion = passwordQuestion, PasswordAnswer = passwordAnswer, IsApproved = isApproved, CreationDate = now, LastPasswordChangedDate = now, LastActivityDate = now, LastLockoutDate = now, FailedPasswordAttemptWindowStart = now, FailedPasswordAnswerAttemptWindowStart = now, Comment = string.Empty, ProviderName = this.Name }; var db = MongoDatabase.Create(ConnectionString); using (db.RequestStart()) { db.GetCollection <MongoUser>(typeof(MongoUser).Name).Insert(newUser); } retval = newUser.ToMembershipUser(); tempStatus = MembershipCreateStatus.Success; } } else { tempStatus = MembershipCreateStatus.DuplicateUserName; } } status = tempStatus; return(retval); }