我使用了asp成员资格功能将用户管理添加到我的网络应用程序中。我修改了默认表以包含更多字段。在创建用户向导上,我将向导步骤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
结束
干杯 - 比利
答案 0 :(得分:1)
如果您使用ASP.Net会员资格api作为@edosoft建议,那么您不需要手动更新存储过程。
如果要将新/自定义字段添加到用户配置文件,则可以在与配置文件关联的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那样使用它,其中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()
希望这有帮助。
答案 1 :(得分:0)
就我所知,ASP.NET会员API使用存储的proc aspnet_Users_CreateUser