public async void UserValidationAsync()
		{
			var userRep = new UsersRepository();
			var user = await userRep.CreateAsync(102);

			try
			{
				Assert.That(user.Id, Is.GreaterThan(0));
				Assert.That(user.Name, Is.EqualTo(102));
				
				Assert.IsTrue(await userRep.IsUserValid(user.Name, user.Password));
				Assert.IsFalse(await userRep.IsUserValid(user.Name + 1, user.Password));
				Assert.IsFalse(await userRep.IsUserValid(user.Name, Guid.Empty));
			}
			finally
			{
				var count = userRep.Remove(user);
				Assert.That(count, Is.EqualTo(1));
			}
		}
示例#2
0
		public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
		{
			var userRep = new UsersRepository();

			if (!await userRep.IsUserValid(int.Parse(context.UserName), Guid.Parse(context.Password)))
			{
				Logger.Trace("Отказано в выдаче токена.");

				context.SetError("invalid_grant", "Имя пользователя или пароль неправильны.");
				context.Rejected();
				return;
			}

			Logger.Trace("Токен выдан.");
			
			var identity = new ClaimsIdentity(context.Options.AuthenticationType);
			identity.AddClaim(new Claim("user_name", context.UserName));
			
			context.Validated(identity);
		}