public void Setup() { _configurationManagerWrapper = A.Fake <IConfigurationManagerWrapper>(); _windowsTokenRoleProviderWrapper = A.Fake <IWindowsTokenRoleProviderWrapper>(); _userPrincipalProvider = A.Fake <IUserPrincipalProvider>(); _administratorsgroup = "administratorsgroup"; A.CallTo(() => _configurationManagerWrapper.AppSettings).Returns(new NameValueCollection() { { ApplicationSettingConstants.McaAdministratorsActiveDirectoryGroup, _administratorsgroup } }); _username = "******"; A.CallTo(() => _userPrincipalProvider.CurrentUserName).Returns(_username); _userRoleProvider = new UserRoleProvider(_configurationManagerWrapper, _windowsTokenRoleProviderWrapper, _userPrincipalProvider); }
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" }); UserProvider _userProvider = new UserProvider(); UserRoleProvider _userRoleProvider = new UserRoleProvider(); var entityUser = await _userProvider.LoginUser(context.UserName, context.Password); if (entityUser == null) { context.SetError("invalid_grant", "The user name or password is incorrect."); return; } else { IdentityUser user = new IdentityUser { UserName = entityUser.UserName, Id = entityUser.UserId.ToString() }; } var userrole = await _userRoleProvider.GetById(entityUser.RoleId.Value); var identity = new ClaimsIdentity(context.Options.AuthenticationType); identity.AddClaim(new Claim("sub", context.UserName)); identity.AddClaim(new Claim("role", userrole.Description)); var props = new AuthenticationProperties(new Dictionary <string, string> { { "firstName", entityUser.FirstName }, { "lastName", entityUser.LastName }, { "userRole", userrole.Description } }); var ticket = new AuthenticationTicket(identity, props); context.Validated(ticket); }