20 messaggi dal 11 giugno 2012
Salve a tutti, premetto che sono alle prime armi con .NET e linguaggi Microsoft in generale.

Sto creando un sito dove la creazione utenti e' permessa solo ad utenti con un ruolo specifico. Per la registrazione ho usato la pagina creata da Visual Studio in automatico quando crei una nuova WebApplication. Sono riuscito a creare i ruoli. Quando creo la pagina per la registrazione specifico le differenze a seconda se l'utente che accede alla pagina e' anonimo, loggato o facente parte del gruppo interessato.
Il compilatore mi da errore dicendomi "Il nome 'RegisterUser' non esiste nel contesto corrente"; come devo fare per far vedere questo ID?
<%@ Page Title="Registra" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Register.aspx.cs" Inherits="WebApplication1.Account.Register" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <asp:LoginView runat="server">
        <RoleGroups>
            <asp:RoleGroup Roles="utenti_write">
                <ContentTemplate>
                    <asp:CreateUserWizard ID="RegisterUser" runat="server" EnableViewState="false" OnCreatedUser="RegisterUser_CreatedUser">
        <LayoutTemplate>
            <asp:PlaceHolder ID="wizardStepPlaceholder" runat="server"></asp:PlaceHolder>
            <asp:PlaceHolder ID="navigationPlaceholder" runat="server"></asp:PlaceHolder>
        </LayoutTemplate>
        <WizardSteps>
            <asp:CreateUserWizardStep ID="RegisterUserWizardStep" runat="server">
                <ContentTemplate>
                    <h2>
                        Crea nuovo account
                    </h2>
                    <p>
                        Utilizzare il form seguente per creare un nuovo account.
                    </p>
                    <p>
                        Le password devono essere costituite da almeno <%= Membership.MinRequiredPasswordLength %> caratteri.
                    </p>
                    <span class="failureNotification">
                        <asp:Literal ID="ErrorMessage" runat="server"></asp:Literal>
                    </span>
                    <asp:ValidationSummary ID="RegisterUserValidationSummary" runat="server" CssClass="failureNotification" 
                         ValidationGroup="RegisterUserValidationGroup"/>
                    <div class="accountInfo">
                        <fieldset class="register">
                            <legend>Informazioni account</legend>
                            <p>
                                <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">Nome utente:</asp:Label>
                                <asp:TextBox ID="UserName" runat="server" CssClass="textEntry"></asp:TextBox>
                                <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName" 
                                     CssClass="failureNotification" ErrorMessage="Il valore Nome utente è obbligatorio." ToolTip="Il valore Nome utente è obbligatorio." 
                                     ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
                            </p>
                            <p>
                                <asp:Label ID="EmailLabel" runat="server" AssociatedControlID="Email">Posta elettronica:</asp:Label>
                                <asp:TextBox ID="Email" runat="server" CssClass="textEntry"></asp:TextBox>
                                <asp:RequiredFieldValidator ID="EmailRequired" runat="server" ControlToValidate="Email" 
                                     CssClass="failureNotification" ErrorMessage="Il valore Posta elettronica è obbligatorio." ToolTip="Il valore Posta elettronica è obbligatorio." 
                                     ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
                            </p>
                            <p>
                                <asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">Password:</asp:Label>
                                <asp:TextBox ID="Password" runat="server" CssClass="passwordEntry" TextMode="Password"></asp:TextBox>
                                <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password" 
                                     CssClass="failureNotification" ErrorMessage="La password è obbligatoria." ToolTip="La password è obbligatoria." 
                                     ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
                            </p>
                            <p>
                                <asp:Label ID="ConfirmPasswordLabel" runat="server" AssociatedControlID="ConfirmPassword">Conferma password:</asp:Label>
                                <asp:TextBox ID="ConfirmPassword" runat="server" CssClass="passwordEntry" TextMode="Password"></asp:TextBox>
                                <asp:RequiredFieldValidator ControlToValidate="ConfirmPassword" CssClass="failureNotification" Display="Dynamic" 
                                     ErrorMessage="La password di conferma è obbligatoria." ID="ConfirmPasswordRequired" runat="server" 
                                     ToolTip="La password di conferma è obbligatoria." ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
                                <asp:CompareValidator ID="PasswordCompare" runat="server" ControlToCompare="Password" ControlToValidate="ConfirmPassword" 
                                     CssClass="failureNotification" Display="Dynamic" ErrorMessage="La password e la password di conferma devono corrispondere."
                                     ValidationGroup="RegisterUserValidationGroup">*</asp:CompareValidator>
                            </p>
                        </fieldset>
                        <p class="submitButton">
                            <asp:Button ID="CreateUserButton" runat="server" CommandName="MoveNext" Text="Crea utente" 
                                 ValidationGroup="RegisterUserValidationGroup"/>
                        </p>
                    </div>
                </ContentTemplate>
                <CustomNavigationTemplate>
                </CustomNavigationTemplate>
            </asp:CreateUserWizardStep>
        </WizardSteps>
    </asp:CreateUserWizard>
                </ContentTemplate>
            </asp:RoleGroup>
        </RoleGroups>
        <AnonymousTemplate>
            <p>Utente non collegato, vai alla pagina di <a href="Login.aspx">Login</a></p>
        </AnonymousTemplate>
        <LoggedInTemplate>
            <p>Non hai i permessi necessari per aggiungere utenti!</p> 
        </LoggedInTemplate>
    </asp:LoginView>
</asp:Content>


L'errore e' presente nel file Register.aspx.cs; grazie a chiunque riuscira' a darmi una mano :)
420 messaggi dal 23 marzo 2010
Contributi
Non ho capito bene il problema. Puoi spiegarti meglio? Comunque, ti do un consiglio che puoi seguire o meno: visto che sei alle prime armi, passa direttamente al pattern MVC, ti troverai meglio secondo me. Ciao
20 messaggi dal 11 giugno 2012
Ci provo! Come vedi dal codice sopra il CreateUserWizard è dentro il LoginView. Da quando l'ho spostato li dentro il compilatore mi da l'errore che dicevo. Il file Register.aspx.cs che è questo:
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1.Account
{
    public partial class Register : System.Web.UI.Page
    {

        protected void Page_Load(object sender, EventArgs e)
        {
            
            RegisterUser.ContinueDestinationPageUrl = Request.QueryString["ReturnUrl"];
        }

        protected void RegisterUser_CreatedUser(object sender, EventArgs e)
        {
            FormsAuthentication.SetAuthCookie(RegisterUser.UserName, false /* createPersistentCookie */);

            string continueUrl = RegisterUser.ContinueDestinationPageUrl;
            if (String.IsNullOrEmpty(continueUrl))
            {
                continueUrl = "~/";
            }
            Response.Redirect(continueUrl);
        }

    }
}


I RegisterUser all'interno del Page_Load e RegisterUser_CreatedUser danno l'errore che dicevo prima!
20 messaggi dal 11 giugno 2012
Non so se è la soluzione più giusta, ma commentando tutto il codice dentro i metodi Page_Load e RegisterUser_CreatedUser sembra funzionare come voglio io!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.