如何自定义 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>
我想要的是能够在用户注册时获取UserId
和UserName
值,并将它们分别存储到Profile.Id
和Profile.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 控件中更改用户名字段。网