public HttpResponseMessage Post([FromBody] UserSignInViewModel model) { TdIdentityContext context = new TdIdentityContext(); var userStore = new UserStore <TicketDeskUser>(context); var roleStore = new RoleStore <TicketDeskRole>(context); var userManager = new TicketDeskUserManager(userStore); var roleManager = new TicketDeskRoleManager(roleStore); IOwinContext context1 = HttpContext.Current.GetOwinContext(); //UserSignInViewModel model = new UserSignInViewModel(); //model.UserNameOrEmail = "*****@*****.**"; //model.Password = "******"; //model.RememberMe = false; HttpResponseMessage result; TicketDeskSignInManager signinmanager = new TicketDeskSignInManager(userManager, context1.Authentication); TdDomainContext domain = new TdDomainContext(null); UserController controller = new UserController(userManager, signinmanager, domain); controller.SignInApi(model, ""); //var response = Request.CreateResponse(HttpStatusCode.Moved); //response.Headers.Location = new Uri("https://localhost:44373/ticket/new") ; //return response; result = Request.CreateResponse(HttpStatusCode.OK, "https://localhost:44373/ticket/new"); return(result); //var employee = "Megha"; //if (employee == null) //{ // return NotFound(); //} //return Ok(employee); }
public static void RemoveIdentity(TdIdentityContext context, string currentUserId) { //kill all users and roles except current user foreach (var user in context.Users.Where(u => !u.Id.Equals(currentUserId, StringComparison.InvariantCultureIgnoreCase))) { context.Users.Remove(user); } foreach (var role in context.Roles) { context.Roles.Remove(role); } context.SaveChanges(); //re-make the default roles Configuration.InitializeStockRoles(context); //put the current user back in the admin role var userStore = new UserStore <TicketDeskUser>(context); var userManager = new TicketDeskUserManager(userStore); var currentUser = userManager.FindById(currentUserId); if (!userManager.IsInRole(currentUser.Id, "TdAdministrators")) { userManager.AddToRole(currentUser.Id, "TdAdministrators"); } context.SaveChanges(); }
/// <summary> /// Migrates the users and roles from a legacy database to the new TD 2.5 schema. /// </summary> /// <param name="context">The identity database context</param> /// <param name="userManager">The user manager.</param> /// <param name="roleManager">The role manager.</param> /// <returns><c>true</c> if users migrated, <c>false</c> otherwise.</returns> public static bool MigrateSecurity(TdIdentityContext context, TicketDeskUserManager userManager, TicketDeskRoleManager roleManager) { roleManager.EnsureDefaultRolesExist(); var appId = context.Database.SqlQuery <Guid>( "select ApplicationId from aspnet_Applications where ApplicationName = 'TicketDesk'").First().ToString(); var users = context.Database.SqlQuery <LegacyUser>( "select UserId, Email, Password, PasswordFormat, Comment from aspnet_Membership where ApplicationId = '" + appId + "' and IsApproved = 1 and IsLockedOut = 0").ToList(); const string roleQuery = "SELECT r.RoleName FROM aspnet_UsersInRoles u inner join aspnet_Roles r on u.RoleId = r.RoleId WHERE u.UserId = @userId and r.ApplicationId = @appId"; foreach (var user in users) { var newUser = new TicketDeskUser { UserName = user.Email, Email = user.Email, DisplayName = user.Comment, }; var result = user.PasswordFormat == 0 ? userManager.Create(newUser, user.Password) : userManager.Create(newUser); if (result.Succeeded) { var rolesForUser = context.Database.SqlQuery <string>(roleQuery, new SqlParameter("userId", user.UserId), new SqlParameter("appId", appId)); var newRoles = new List <string>(); foreach (var role in rolesForUser) { switch (role.ToLowerInvariant()) { case "administrators": newRoles.Add("TdAdministrators"); break; case "helpdesk": newRoles.Add("TdHelpDeskUsers"); break; case "ticketsubmitters": newRoles.Add("TdInternalUsers"); break; default: newRoles.Add("TdPendingUsers"); break; } } userManager.AddToRoles(newUser.Id, newRoles.ToArray()); } } return(true); }
public static void SetupDemoIdentityData(TdIdentityContext context, string currentUserId) { var userStore = new UserStore <TicketDeskUser>(context); var roleStore = new RoleStore <TicketDeskRole>(context); var userManager = new TicketDeskUserManager(userStore); var roleManager = new TicketDeskRoleManager(roleStore); roleManager.EnsureDefaultRolesExist(); var staff = new TicketDeskUser { Id = "72bdddfb-805a-4883-94b9-aa494f5f52dc", UserName = "******", Email = "*****@*****.**", DisplayName = "HelpDesk User" }; var reguser = new TicketDeskUser { Id = "17f78f38-fa68-445f-90de-38896140db28", UserName = "******", Email = "*****@*****.**", DisplayName = "Regular User" }; var users = new List <TicketDeskUser> { staff, reguser }; var rolesNames = new Dictionary <string, string[]> { { "*****@*****.**", new[] { "TdHelpDeskUsers" } }, { "*****@*****.**", new[] { "TdInternalUsers" } } }; if (currentUserId == null && userManager.FindByName("*****@*****.**") == null) { users.Add(new TicketDeskUser { Id = "64165817-9cb5-472f-8bfb-6a35ca54be6a", UserName = "******", Email = "*****@*****.**", DisplayName = "Admin User" }); rolesNames.Add("*****@*****.**", new[] { "TdAdministrators" }); } foreach (var tdUser in users) { var user = userManager.FindById(tdUser.Id); if (user != null) { userManager.Delete(user); } user = tdUser; userManager.Create(user, "123456"); var rnames = rolesNames[user.UserName]; var rolesForUser = userManager.GetRoles(user.Id); foreach (var rname in rnames.Where(rname => !rolesForUser.Contains(rname))) { userManager.AddToRole(user.Id, rname); } } }
/// <summary> /// Migrates the users and roles from a legacy database to the new TD 2.5 schema. /// </summary> /// <param name="context">The identity database context</param> /// <param name="userManager">The user manager.</param> /// <param name="roleManager">The role manager.</param> /// <returns><c>true</c> if users migrated, <c>false</c> otherwise.</returns> public static bool MigrateSecurity(TdIdentityContext context, TicketDeskUserManager userManager, TicketDeskRoleManager roleManager) { roleManager.EnsureDefaultRolesExist(); var appId = context.Database.SqlQuery<Guid>( "select ApplicationId from aspnet_Applications where ApplicationName = 'TicketDesk'").First().ToString(); var users = context.Database.SqlQuery<LegacyUser>( "select UserId, Email, Password, PasswordFormat, Comment from aspnet_Membership where ApplicationId = '" + appId + "' and IsApproved = 1 and IsLockedOut = 0").ToList(); const string roleQuery = "SELECT r.RoleName FROM aspnet_UsersInRoles u inner join aspnet_Roles r on u.RoleId = r.RoleId WHERE u.UserId = @userId and r.ApplicationId = @appId"; foreach (var user in users) { var newUser = new TicketDeskUser { UserName = user.Email, Email = user.Email, DisplayName = user.Comment, }; var result = user.PasswordFormat == 0 ? userManager.Create(newUser, user.Password) : userManager.Create(newUser); if (result.Succeeded) { var rolesForUser = context.Database.SqlQuery<string>(roleQuery, new SqlParameter("userId", user.UserId), new SqlParameter("appId", appId)); var newRoles = new List<string>(); foreach (var role in rolesForUser) { switch (role.ToLowerInvariant()) { case "administrators": newRoles.Add("TdAdministrators"); break; case "helpdesk": newRoles.Add("TdHelpDeskUsers"); break; case "ticketsubmitters": newRoles.Add("TdInternalUsers"); break; default: newRoles.Add("TdPendingUsers"); break; } } userManager.AddToRoles(newUser.Id, newRoles.ToArray()); } } return true; }
public static void RemoveAllIdentity(TdIdentityContext context) { foreach (var user in context.Users) { context.Users.Remove(user); } foreach (var role in context.Roles) { context.Roles.Remove(role); } context.SaveChanges(); Configuration.InitializeStockUsers(context); context.SaveChanges(); }
public static void SetupDemoIdentityData(TdIdentityContext context) { var userStore = new UserStore<TicketDeskUser>(context); var roleStore = new RoleStore<TicketDeskRole>(context); var userManager = new TicketDeskUserManager(userStore); var roleManager = new TicketDeskRoleManager(roleStore); roleManager.EnsureDefaultRolesExist(); var admin = new TicketDeskUser { Id = "64165817-9cb5-472f-8bfb-6a35ca54be6a", UserName = "******", Email = "*****@*****.**", DisplayName = "Admin User" }; var staff = new TicketDeskUser { Id = "72bdddfb-805a-4883-94b9-aa494f5f52dc", UserName = "******", Email = "*****@*****.**", DisplayName = "HelpDesk User" }; var reguser = new TicketDeskUser { Id = "17f78f38-fa68-445f-90de-38896140db28", UserName = "******", Email = "*****@*****.**", DisplayName = "Regular User" }; var users = new[] { admin, staff, reguser }; var rolesNames = new Dictionary<string, string[]> { {"*****@*****.**", new[] {"TdAdministrators"}}, {"*****@*****.**", new[] {"TdHelpDeskUsers"}}, {"*****@*****.**", new[] {"TdInternalUsers"}} }; foreach (var tdUser in users) { var user = userManager.FindByName(tdUser.UserName); if (user == null) { user = tdUser; userManager.Create(user, "123456"); } var rnames = rolesNames[user.UserName]; var rolesForUser = userManager.GetRoles(user.Id); foreach (var rname in rnames.Where(rname => !rolesForUser.Contains(rname))) { userManager.AddToRole(user.Id, rname); } } }
public static void RemoveLegacyMembershipObjects(TdIdentityContext context) { const string script = @" drop table aspnet_PersonalizationAllUsers drop table aspnet_PersonalizationPerUser drop table aspnet_Profile drop table aspnet_SchemaVersions drop table aspnet_UsersInRoles drop table aspnet_WebEvent_Events drop table aspnet_Paths drop table aspnet_Membership drop table aspnet_Roles drop table aspnet_Users drop table aspnet_Applications drop view vw_aspnet_Applications drop view vw_aspnet_MembershipUsers drop view vw_aspnet_Profiles drop view vw_aspnet_Roles drop view vw_aspnet_Users drop view vw_aspnet_UsersInRoles drop view vw_aspnet_WebPartState_Paths drop view vw_aspnet_WebPartState_Shared drop view vw_aspnet_WebPartState_User drop procedure aspnet_AnyDataInTables drop procedure aspnet_Applications_CreateApplication drop procedure aspnet_CheckSchemaVersion drop procedure aspnet_Membership_ChangePasswordQuestionAndAnswer drop procedure aspnet_Membership_CreateUser drop procedure aspnet_Membership_FindUsersByEmail drop procedure aspnet_Membership_FindUsersByName drop procedure aspnet_Membership_GetAllUsers drop procedure aspnet_Membership_GetNumberOfUsersOnline drop procedure aspnet_Membership_GetPassword drop procedure aspnet_Membership_GetPasswordWithFormat drop procedure aspnet_Membership_GetUserByEmail drop procedure aspnet_Membership_GetUserByName drop procedure aspnet_Membership_GetUserByUserId drop procedure aspnet_Membership_ResetPassword drop procedure aspnet_Membership_SetPassword drop procedure aspnet_Membership_UnlockUser drop procedure aspnet_Membership_UpdateUser drop procedure aspnet_Membership_UpdateUserInfo drop procedure aspnet_Paths_CreatePath drop procedure aspnet_Personalization_GetApplicationId drop procedure aspnet_PersonalizationAdministration_DeleteAllState drop procedure aspnet_PersonalizationAdministration_FindState drop procedure aspnet_PersonalizationAdministration_GetCountOfState drop procedure aspnet_PersonalizationAdministration_ResetSharedState drop procedure aspnet_PersonalizationAdministration_ResetUserState drop procedure aspnet_PersonalizationAllUsers_GetPageSettings drop procedure aspnet_PersonalizationAllUsers_ResetPageSettings drop procedure aspnet_PersonalizationAllUsers_SetPageSettings drop procedure aspnet_PersonalizationPerUser_GetPageSettings drop procedure aspnet_PersonalizationPerUser_ResetPageSettings drop procedure aspnet_PersonalizationPerUser_SetPageSettings drop procedure aspnet_Profile_DeleteInactiveProfiles drop procedure aspnet_Profile_DeleteProfiles drop procedure aspnet_Profile_GetNumberOfInactiveProfiles drop procedure aspnet_Profile_GetProfiles drop procedure aspnet_Profile_GetProperties drop procedure aspnet_Profile_SetProperties drop procedure aspnet_RegisterSchemaVersion drop procedure aspnet_Roles_CreateRole drop procedure aspnet_Roles_DeleteRole drop procedure aspnet_Roles_GetAllRoles drop procedure aspnet_Roles_RoleExists drop procedure aspnet_Setup_RemoveAllRoleMembers drop procedure aspnet_Setup_RestorePermissions drop procedure aspnet_UnRegisterSchemaVersion drop procedure aspnet_Users_CreateUser drop procedure aspnet_Users_DeleteUser drop procedure aspnet_UsersInRoles_AddUsersToRoles drop procedure aspnet_UsersInRoles_FindUsersInRole drop procedure aspnet_UsersInRoles_GetRolesForUser drop procedure aspnet_UsersInRoles_GetUsersInRoles drop procedure aspnet_UsersInRoles_IsUserInRole drop procedure aspnet_UsersInRoles_RemoveUsersFromRoles drop procedure aspnet_WebEvent_LogEvent drop schema aspnet_Membership_FullAccess drop schema aspnet_Membership_BasicAccess drop schema aspnet_Membership_ReportingAccess drop schema aspnet_Personalization_BasicAccess drop schema aspnet_Personalization_FullAccess drop schema aspnet_Personalization_ReportingAccess drop schema aspnet_Profile_BasicAccess drop schema aspnet_Profile_FullAccess drop schema aspnet_Profile_ReportingAccess drop schema aspnet_Roles_BasicAccess drop schema aspnet_Roles_FullAccess drop schema aspnet_Roles_ReportingAccess drop schema aspnet_WebEvent_FullAccess drop role aspnet_Membership_FullAccess drop role aspnet_Membership_BasicAccess drop role aspnet_Membership_ReportingAccess drop role aspnet_Personalization_FullAccess drop role aspnet_Personalization_BasicAccess drop role aspnet_Personalization_ReportingAccess drop role aspnet_Profile_FullAccess drop role aspnet_Profile_BasicAccess drop role aspnet_Profile_ReportingAccess drop role aspnet_Roles_FullAccess drop role aspnet_Roles_BasicAccess drop role aspnet_Roles_ReportingAccess drop role aspnet_WebEvent_FullAccess "; context.Database.ExecuteSqlCommand(TransactionalBehavior.EnsureTransaction, script); }
public DataManagementController(TdIdentityContext identityContext, TdPushNotificationContext pushNotificationContext, TicketDeskSignInManager signInManager) { IdentityContext = identityContext; PushNotificationContext = pushNotificationContext; SignInManager = signInManager; }
public DataManagementController(TdIdentityContext identityContext, TdPushNotificationContext pushNotificationContext) { IdentityContext = identityContext; PushNotificationContext = pushNotificationContext; }