Мастер создания пользователей ASP.NET - Справка по настройке - PullRequest
1 голос
/ 09 апреля 2010

Я использовал функцию членства в asp, чтобы добавить управление пользователями в мое веб-приложение. Я изменил таблицы по умолчанию, чтобы включить еще пару полей. В мастере создания пользователя я превратил первый шаг мастера в настраиваемый шаблон и добавил элементы управления для 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

END

Ура - Билли

Ответы [ 2 ]

1 голос
/ 09 апреля 2010

Если вы используете API-интерфейс членства в ASP.Net, как предложено @edosoft, вам не нужно обновлять хранимые процедуры вручную.

Если вы хотите добавить новые / настраиваемые поля в профиль пользователя, то выМожно добавить ключ в файл web.config, который связан с профилем.Затем значения для этого поля можно выбрать отдельно из таблицы БД, которая только что использовалась, из статического выпадающего списка в отдельной процедуре, например.

В вашем файле 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()

Надеюсь, это поможет.

0 голосов
/ 09 апреля 2010

API членства в ASP.NET использует хранимую процедуру aspnet_Users_CreateUser, насколько я знаю

...