provare i seguenti script:
Fase 1. User Defined Function per codificare la password e il sale
CREATE FUNCTION [dbo].[base64_encode] (@data VARBINARY(MAX)) RETURNS VARCHAR(MAX) WITH SCHEMABINDING,
RETURNS NULL ON NULL INPUT BEGIN RETURN
(SELECT [text()] = @data
FOR XML PATH('')) END GO
Passaggio 2. Stored procedure per creare utente di appartenenza
CREATE PROCEDURE [dbo].[CreateUser]
@UserName nvarchar(256)
, @ClearTextPassword nvarchar(128)
, @Email nvarchar(256)
, @pUserId uniqueidentifier
AS
BEGIN
DECLARE @ApplicationName nvarchar(256)
DECLARE @PasswordFormat int
DECLARE @UnencodedSalt uniqueidentifier
DECLARE @Password nvarchar(128)
DECLARE @PasswordSalt nvarchar(128)
DECLARE @Now DATETIME
DECLARE @UniqueEmail int
DECLARE @UserId uniqueidentifier
SET @ApplicationName = 'ApplicationName' --Find in aspnet_Applications.ApplicationName
SET @PasswordFormat = 1
SET @UnencodedSalt = NEWID()
SET @PasswordSalt = dbo.base64_encode(@UnencodedSalt)
SET @Password = dbo.base64_encode(HASHBYTES('SHA1',
CAST(@UnencodedSalt as varbinary(MAX))
+ CAST(@ClearTextPassword AS varbinary(MAX))))
SET @Now = getutcdate()
SET @UniqueEmail = 1
SET @[email protected]
BEGIN TRANSACTION
--DECLARE @UserId uniqueidentifier
EXECUTE [dbo].[aspnet_Membership_CreateUser]
@ApplicationName
,@UserName
,@Password
,@PasswordSalt
,@Email
,NULL
,NULL
,1 -- IsApproved == true
,@Now
,@Now
,@UniqueEmail
,@PasswordFormat
,@UserId OUTPUT
COMMIT
END
GO
Fase 3. Crea l'utente
DECLARE @UserId uniqueidentifier
SET @UserId = NewId()
EXECUTE [dbo].[CreateUser]
'UserName' [email protected]
,'[email protected] '[email protected]
,'[email protected] '[email protected]
,@UserId --User's uniqueidentifier
Note aggiuntive:
- Controlla il tuo nome dell'applicazione è corretto nel vostro elemento appartenenza web.config.
- Ricordare di creare ruoli e aggiungere utenti ai ruoli.
NO Io ho semplicemente copiato una password e il sale esistente da un altro utente di mine e lo ha utilizzato per questo nuovo utente così nella dichiarazione dell'inserto – PositiveGuy
"Abbonamento provider/API "beh, questo è ciò che è spezzato nel codice, e non ho il tempo di sistemarlo adesso ... ho bisogno di creare un utente ora per un'emergenza/test di manutenzione – PositiveGuy
@CoffeeAddict Ok, beh, basta fare questo. Creare un'applicazione che abbia un file di configurazione con connectionString che punta al proprio database, una sezione del provider di appartenenza che utilizza quella stringa di connessione (e l'altro nome dell'applicazione) e roleManager con gli stessi dettagli. –