2011-08-01 28 views
1

我正在嘗試使用TSQL將1000個用戶導入到aspnet_membership表。任何人都可以請我指出正確的方向是否可能?將用戶導入aspnet_membership表

的要求是:

  1. 創建用戶和配置文件。
  2. 生成密碼。
  3. 電子郵件密碼給最終用戶。

謝謝。

+0

你有什麼理由要直接使用TSQL來做到這一點嗎?您可以使用SqlMembershipProvider在C#中使用簡單的應用程序輕鬆完成此操作。 – Infotekka

+0

將是一個例行程序,我正在考慮使用SSIS包。 –

回答

1

如果您打算使用未加密的密碼格式,那麼您可以撥打dbo.aspnet_Membership_CreateUser存儲過程從您的SQL創建用戶。它需要一些參數; @ApplicationName
@UserName
@Password
@PasswordSalt
@Email
@PasswordQuestion
@PasswordAnswer
@IsApproved
@CurrentTimeUtc
@CreateDate
@UniqueEmail
@PasswordFormat
@UserId(輸出)

您可以在TSQL中生成密碼,並且可以從TSQL發送電子郵件。此存儲過程:dbo.aspnet_Profile_SetProperties將設置配置文件屬性。

如果你需要散列或加密的密碼..那麼可能你必須編寫一些使用成員資格和配置文件提供程序的管理代碼。這樣做應該相當容易。提供者擁有生成和加密密碼所需的所有方法。 要創建只需調用用戶:

CREATEUSER (用戶名字符串, 串密碼, 串電子郵件, 串passwordQuestion, 串passwordAnswer, 布爾isApproved, 對象providerUserKey, 出MembershipCreateStatus狀態)

方法並傳入數據。加密n會在方法內部發生。

所以TSQL可以工作,如果你不需要加密或散列密碼。否則,它會是一些編碼..但真的很少。

+0

謝謝,但是,我應該爲這些參數:PasswordSalt,@ urrentTimeUtc,passwordFormat –

+0

0爲paswordFormat(這將意味着明文,@ urrentTimeUtc - 當前日期UTC,PasswordSalt將不會用於明文密碼..所以任何東西可能會起作用 – KJRB

+0

我唯一不知道的是如何僞造userid和password salt?!?我不能使用配置創建成員身份,所以我必須使用數據庫輸入它們,我不能把一個'NULL'的值希望它能讓我滿意,所以我有點卡住了。 – jlg

0

那麼,AFAIK - 沒有自動化的嚮導來做到這一點,你需要通過它進行編碼。您可以使用SQL語句導入用戶和配置文件。然而,GeneratePassword和Emailing是你可能想要考慮的一個獨立過程,它使得它更鬆散耦合。