Мы использовали членство раньше и теперь в новом проекте мы используем Identity для аутентификации и авторизации. Мы можем создавать пользователей и роль программно (в методе Seed для проекта Identity). Нам также необходимо связать этих пользователей членства с пользователем приложения, например Employee, при создании пользователей в методе Seed приложения DAL. Для чего раньше мы использовали SQL Script. Теперь аналогичный SQL Script нам нужно написать для создания пользователей и ролей Identity. Из SQL Script мы могли бы захватить MembershipId для пользователя и использовать это значение MemberhipId для присвоения ему столбца Employee's MembershipId.Создание пользователей и ролей в SQL Script с идентификатором ASP.NET
Проблема, за которую мы застряли, - это хранимые процедуры, например. «aspnet_Membership_CreateUser», который был доступен в БД членства (aspnetdb), недоступен в созданном нами БД Identity.
Сценарий выглядит следующим образом:
-- Create roles for 'XXX' Application
EXEC [aspnet_Roles_CreateRole] 'XXX','ADMIN'
EXEC [aspnet_Roles_CreateRole] 'XXX','USER'
-- Create new membership user
EXEC @return_value = [dbo].[aspnet_Membership_CreateUser]
@ApplicationName = N'XXX',
@UserName = N'[email protected]',
@Password = N'QhoM803ew/sdfdf/4NQ=',
@PasswordSalt = N'dGzG1ddfdfdfk1Kqwddff==',
@Email = N'[email protected]',
@PasswordQuestion = N'secretQuestion',
@PasswordAnswer = N'secretAnswer',
@IsApproved = true,
@CurrentTimeUtc = @nowUtc,
@CreateDate = @now,
@UniqueEmail = 1,
@PasswordFormat = 1,
@UserId = @MembershipId_OrgAdmin OUTPUT
PRINT 'Test Admin Created successfully.'
-- Assign role to user
EXEC [aspnet_UsersInRoles_AddUsersToRoles]
@ApplicationName = N'XXX',
@UserNames = N'[email protected]',
@RoleNames = N'ADMIN',
@CurrentTimeUtc = @nowUtc
PRINT 'Test Admin assigned to ADMIN Role successfully.'
-- Finally create a application user and connect it to membership user
INSERT INTO OrganizationUser
(MembershipId,IsDeleted,FirstName,LastName,PhoneNumber,Extension,Address1,Address2,City,State,ZipCode,Country,JobTitle,IsActive,OrganizationId,IsPasswordReset,DownloadCode,IsContactPerson,LastLoginDate,WelcomeEmailDate,CreatedDate,CreatedBy,UpdatedDate,UpdatedBy)
VALUES
(@MembershipId_OrgAdmin,0,'XXX','Admin','2888262','800','ABC','Charlotte, SC 21270','SC','SC','21270','US','XXX Admin',1,(select OrganizationId from Organization where Name='XXX'),0,'1-1-14110985',1,null,null,@now,null,@now,null)
Вопрос:
- Существует ли эти хранимые процедуры в идентичности?
- Каковы возможные/предлагаемые способы решения этой ситуации, например, членство в членстве с пользователем приложения, использующее Identity?