如何自定义 CreateUserWizard 以获取 UserId 和 UserName 值?

Posted

技术标签:

【中文标题】如何自定义 CreateUserWizard 以获取 UserId 和 UserName 值?【英文标题】:How to customize CreateUserWizard to get UserId and UserName values? 【发布时间】:2015-04-26 01:03:48 【问题描述】:

我正在使用Membership provider 处理用户 注册和登录网站。这个Membership provider 是一个包的一部分,来自:

安装包 Microsoft.AspNet.Providers

我有两个ASPX 页面,一个有一个CreateUserWizard 控件,另一个有一个Login 控件。注册和日志记录工作正常。

我在 web.config 文件中定义了Profile 属性:

<profile defaultProvider="DefaultProfileProvider">
  <properties>
    <add name="Id" type="System.Guid" />
    <add name="UserName"/>
  </properties>

我想要的是能够在用户注册时获取UserIdUserName 值,并将它们分别存储到Profile.IdProfile.UserName

如何自定义CreateUserWizard来实现这个?

我的尝试: 当您在浏览器上显示 CreateUserWizard 时。您可以看到一个名为“创建用户”的按钮,所以我认为这是一个扩展和添加代码以获取所需值的好地方。于是我点了CreateUserWizard上的小箭头,选择Customize Create User Setup,但是可编辑模板不包括“创建用户”对应的按钮。

那么有什么方法可以实现呢?

【问题讨论】:

【参考方案1】:

在 CreateUserWizard 控件的 events 下的 aspx 文件中,有一个“createdUser”事件可以创建。

在CreateUser函数的cs文件中放入:

    MembershipUser newUser = Membership.GetUser(NewUserWizard.UserName);
    Guid newUserId = (Guid)newUser.ProviderUserKey;

newUser.UserName 将为您提供 UserName,而 NewUserId 将为您提供 id。到那时,您应该拥有所需的东西。

【讨论】:

需要哪些命名空间;我添加了using System.Web.Security;,但错误提示:Membership doesn't contain a definition for 'GetUser' generate method stub for 'GetUser' in 'Membership 您将需要 System.Web.UI.WebControls,但对于我的用途,我使用: using System.Web;使用 System.Web.Security;使用 System.Web.UI;使用 System.Web.UI.htmlControls;使用 System.Web.UI.WebControls;使用 System.Web.UI.WebControls.WebParts;

以上是关于如何自定义 CreateUserWizard 以获取 UserId 和 UserName 值?的主要内容,如果未能解决你的问题,请参考以下文章

.net4.0,有个控件叫CreateUSerWizard,怎么用?为啥它的按钮不能双击?

如何更改 createuserwizard 的样式? ASP.NET

如何防止在 createuserwizard 控件中更改用户名字段。网

删除用户名验证 createuserwizard

createuserwizard/asp 登录控件问题 hostgator

MobilePin createuserwizard 不起作用?