从createuserwizard获取用户名以添加到角色

时间:2012-08-02 09:34:39

标签: c# asp.net-membership createuserwizard

我正在尝试为标准的ASP.NET成员资格系统构建一些简单的用户控件。我有一个CreateUserWizard控件,当提交时需要将用户添加到特定角色。

ascx文件如下所示:

<asp:CreateUserWizard ID="CreateUserWizard2" runat="server" oncreateduser="CreateUserWizard2_CreatedUser">
<WizardSteps>
    <asp:CreateUserWizardStep ID="CreateUserWizard2Step1" runat="server">
        <ContentTemplate>
            <div class="form-error">
                <asp:Literal ID="ErrorMessage" runat="server" EnableViewState="False"></asp:Literal>
            </div>
            <fieldset class="member-control">
                <legend>Registration details</legend>
                <div class="standard">
                    <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">Username&#42;:</asp:Label>
                    <asp:TextBox ID="UserName" runat="server" CssClass="text-input"></asp:TextBox>
                    <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName" ErrorMessage="Username is required." ToolTip="Username is required." ValidationGroup="CreateUserWizard1">Username is required.</asp:RequiredFieldValidator>
                </div> ...etc

C#代码隐藏看起来像这样:

namespace DocumentMembership
{
public partial class ClientRegister : System.Web.UI.UserControl
{
    protected void CreateUserWizard2_CreatedUser(object sender, EventArgs e)
    {
        // add member to role
        Roles.AddUserToRole(this.CreateUserWizard2.UserName, "Client");

但是,我收到一个构建错误说:

'DocumentMembership.ClientRegister' does not contain a definition for 'CreateUserWizard2' and no extension method 'CreateUserWizard2' accepting a first argument of type 'DocumentMembership.ClientRegister' could be found (are you missing a using directive or an assembly reference?)

当我开始输入Roles.AddUserToRole时(这个.intellisense似乎没有提供任何有用的能够从表单中获取用户名。

我真的不擅长.NET,所以很明显我做错了,但我似乎无法找到解决办法。

任何人都可以建议如何使这个工作或可能是什么问题?

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以尝试使用此代码

CreateUserWizard2.CreateUserStep.ContentTemplateContainer.FindControl("UserName");

答案 1 :(得分:0)

知道了。这确实是愚蠢的事。 ascx文件继承自错误的代码隐藏,因此它无法识别从表单中检索用户名的任何方法。

答案 2 :(得分:0)

如果关于角色分配,请尝试以下方法:

Roles.AddUserToRole((sender as CreateUserWizard).UserName, "LC");