2 messaggi dal 06 novembre 2008
Salve ragazzi,

Premetto le sono inesperto in fatto di programmazione.

Sto provando a prepararmi un sito web con accesso utente (pagina login.aspx).
Fin qui tutto bene, solo ke la pagina di destinazione dopo aver effettuato il login risulta uguale per tutti gli utenti mentre io avrei bisogno di una pagina diversa per ogni utente.

Come fare?

Questo il codice nella pagina login.aspx:

<asp:Login id="Login1" runat="server" BackColor="#F7F7DE" BorderColor="#CCCC99" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="10pt" DestinationPageUrl="destination.aspx">

<TitleTextStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />                
</asp:Login>

Modificato da giangi64 il 06 novembre 2008 10.32 -
giangi64 wrote:
Salve ragazzi,

Premetto le sono inesperto in fatto di programmazione.

Sto provando a prepararmi un sito web con accesso utente (pagina login.aspx).
Fin qui tutto bene, solo ke la pagina di destinazione dopo aver effettuato il login risulta uguale per tutti gli utenti mentre io avrei bisogno di una pagina diversa per ogni utente.

Come fare?

Ciao,
dovresti eseguire manualmente la fase di autenticazione in modo da gestire il conseguente redirect:
esempio:
    protected void LoginButton_Click(object sender, EventArgs e)     {        string _UserNameText = this.UserNameTextBox.Text;        string _PasswordText = this.PasswordTextBox.Text;        bool _IsPersistent = this.RememberCheckBox.Checked;        if (Page.IsValid)        {            _CheckUtil.CheckTextParameter(ref _UserNameText, true, true,  true, 50, "UserName");            _CheckUtil.CheckTextParameter(ref _PasswordText, true, true,  true, 50, "Password");            if (_CheckUtil.IsValid)            {                bool _LoginUserStatus = Membership.ValidateUser(_UserNameText, _PasswordText);                if (_LoginUserStatus)                {                    MembershipUser _MembershipUser = Membership.GetUser(_UserNameText);                    FormsAuthentication.SetAuthCookie(_UserNameText,  _IsPersistent);                    string _page = FormsAuthentication.GetRedirectUrl(_UserNameText, false);                    string _page2 = SiteLinkUtil.GetUserStartPage(_UserNameText);                    if (!String.IsNullOrEmpty(_page2))                    {                        _page = _page2;                    }                    Response.Redirect(_page);                }                else                {                    ResultLabel.Text = GetLocalResourceObject("ResultLabelResource0.Text").ToString();                 }            }        }    }

Dove SiteLinkUtil.GetUserStartPage(_UserNameText); restituisce un url specifico per ciascun utente.

Alessio Leoncini (SilverlightItalia.com)
.NET Developer, Interactive Designer, UX Specialist, Trainer @ 5DLabs.it
2 messaggi dal 06 novembre 2008
Grazie mille, appena ho un attimo ci provo.

Eventualmente ti disturbo ancora un pochino.

Ciao
Gianluca
25 messaggi dal 07 febbraio 2005
www.be-st.it
Di solito utilizzo l'evento Authenticate del controllo Login.
Il controllo login espone la proprietà "DestinationPageURL" che può essere modificata da codice per ridirigere il login che a default invia alla pagina chiamata prima di fare il login.

Ad esempio se vuoi che gli amministratori vadano su una pagina diversa da tutti gli utenti si può fare una cosa del genere:

protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
Login log = ((System.Web.UI.WebControls.Login)sender);

string UserName = log.UserName;
string Pass = log.Password;

//1 - Verifico se si tratta di un amministratore
if (Roles.IsUserInRole(UserName, "Administrators"))
{
log.DestinationPageUrl = "~/AdmFolder/Admin.aspx";
}

e.Authenticated = Membership.ValidateUser(UserName, Pass);
}

E' importante valorizzare la property Authenticated prima di uscire dal metodo.

Stefano

Web: www.be-st.it

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.
Community
Ultimi messaggi
UTENTI ONLINE
In primo piano

I più letti di oggi

Media
In evidenza
MISC