0

標準の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(this。intellisenseは、フォームからユーザー名を取得するのに役立つものを何も提供していないようです。

私は実際には.NETにあまり熟練していないので、おそらく私が間違っていることは明らかですが、修正を見つけることができないようです。

誰かがこれを機能させる方法や問題は何であるかを提案できますか?

ありがとう!

4

3 に答える 3

1

このコードで試すことができます

CreateUserWizard2.CreateUserStep.ContentTemplateContainer.FindControl("UserName");
于 2012-08-02T09:38:07.653 に答える
0

とった。それは確かに愚かなことでした。ascxファイルは間違ったコードビハインドから継承していたため、フォームからユーザー名を取得する方法を認識していませんでした。

于 2012-08-02T10:12:11.163 に答える
0

役割の割り当てに関する場合は、これを試してください:

Roles.AddUserToRole((sender as CreateUserWizard).UserName, "LC");
于 2013-10-15T00:18:12.900 に答える