【问题标题】:ASP.NET Create User Wizard - Customisation helpASP.NET 创建用户向导 - 自定义帮助
【发布时间】:2010-04-09 10:27:30
【问题描述】:

我已使用 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

结束

干杯——比利

【问题讨论】:

    标签: sql vb.net stored-procedures asp.net-membership createuserwizard


    【解决方案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()
    

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      据我所知,ASP.NET 成员 API 使用存储过程 aspnet_Users_CreateUser

      【讨论】:

      • 感谢我找到了存储过程,但我不完全确定如何使用它。我可以只添加我添加到程序中的控件吗?如何使用下拉框?我已将程序添加到我的帖子中。
      • 我从来没有直接调用这个存储过程,但一直使用 API:MembershipUser newUser = Membership.CreateUser(UsernameTextbox.Text, PasswordTextbox.Text, EmailTextbox.Text);
      • 对 api 做了一个快速的 google 并发现了这篇文章 msdn.microsoft.com/en-us/library/t8yy6w3h.aspx。也许我应该忘记向导并自己做!
      猜你喜欢
      • 2023-03-06
      • 2010-12-31
      • 1970-01-01
      • 2020-09-02
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 2012-06-14
      • 1970-01-01
      相关资源
      最近更新 更多