1

asp メンバーシップ機能を使用して、Web アプリにユーザー管理を追加しました。デフォルトのテーブルを変更して、さらにいくつかのフィールドを含めました。ユーザー作成ウィザードで、ウィザードのステップ 1 をカスタマイズ可能なテンプレートに変え、2 つのフィールドのコントロールを追加しました。

ユーザー レコードの格納に使用されるストアド プロシージャを変更するだけでよいでしょうか? これにドロップダウンリストを追加するにはどうすればよいですか?

USE [DataWarehouseClients]
GO
/****** Object:  StoredProcedure [dbo].[aspnet_Users_CreateUser]    Script Date:     04/09/2010 12:03:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO

ALTER PROCEDURE [dbo].[aspnet_Users_CreateUser]
   @ApplicationId    uniqueidentifier,
   @UserName         nvarchar(256),
   @IsUserAnonymous  bit,
   @LastActivityDate DATETIME,
   @UserId           uniqueidentifier OUTPUT
AS
BEGIN
   IF( @UserId IS NULL )
       SELECT @UserId = NEWID()
   ELSE
BEGIN
    IF( EXISTS( SELECT UserId FROM dbo.aspnet_Users
                WHERE @UserId = UserId ) )
        RETURN -1
END

INSERT dbo.aspnet_Users (ApplicationId, UserId, UserName, LoweredUserName, IsAnonymous, LastActivityDate)
VALUES (@ApplicationId, @UserId, @UserName, LOWER(@UserName), @IsUserAnonymous, @LastActivityDate)

RETURN 0

終わり

乾杯 -- ビリー

4

2 に答える 2

1

@edosoft が提案したように ASP.Net メンバーシップ API を使用する場合は、ストアド プロシージャを手動で更新する必要はありません。

新しい/カスタム フィールドをユーザー プロファイルに追加する場合は、プロファイルに関連付けられている web.config ファイルにキーを追加できます。次に、このフィールドの値を、別のルーチンで静的ドロップダウン リストから使用したばかりの db テーブルとは別に選択できます。

web.config ファイルで:

    <profile enabled="true" defaultProvider="providername" automaticSaveEnabled="true">
        <providers>
          <add name="providername" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ConnectionString" applicationName="AppName"/>
        </providers>
        <properties>
          <add name="UserFirst"/>
          <add name="UserLast"/>
        </properties>
    </profile>

そして、 User_ID が文字列識別子である場合、そのように使用できます。

        Membership.CreateUser(User_ID, "password", "email@example.com")        
        Dim objProfile As ProfileCommon = CType(ProfileBase.Create(User_ID, True), ProfileCommon)
        objProfile.UserFirst = User_First
        objProfile.UserLast = User_Last
        objProfile.Save()

お役に立てれば。

于 2010-04-09T11:25:49.780 に答える
0

aspnet_Users_CreateUser私の知る限り、ASP.NETメンバーシップAPIはストアドプロシージャを使用しています

于 2010-04-09T10:47:42.267 に答える