Sessione if

domenica 04 dicembre 2005 - 11.43

galassya Profilo | Newbie

non riesco a scrivere il nome utente tramite identificazione di session
come si fa?
prima in asp facevo cosi:
If Session("Collegato") = True Then %> <p> <br>
<%=Replace(Benvenuto, "[userid]", Session("UserID"), 1, -1, 1)%>
ora come si fa questo con c#?

Brainkiller Profilo | Guru

>non riesco a scrivere il nome utente tramite identificazione
>di session
>come si fa?
>prima in asp facevo cosi:
>If Session("Collegato") = True Then %> <p> xx
>ora come si fa questo con c#?

Eh eh, bisogna studiare un po' di più. Le cose da ASP 3.0 ad ASP.NET sono cambiate totalmente sia a livello architetturale sia a livello di codice e altro ancora. Il sistema di autenticazione di ASP.NET è ben diverso. Ci sono vari tipi di autenticazione Forms Authetnication (la classica), Windows Authentication per reti locali e autenticazione eventuale tramite il servizio Passport di Microsoft.

Ti consiglio la lettura di questo articolo:
http://support.microsoft.com/?id=301240

ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

galassya Profilo | Newbie

Non riesco ad avere lo stesso risultato
nel senso che nelle righe qua sotto che sono tratte da una pagina non mi
danno errori:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Net;
using System.IO;
using System.Text;
namespace Commerce
{
public class CDefault : Master
{
protected System.Web.UI.HtmlControls.HtmlForm Form1;
protected System.Web.UI.WebControls.Label CustomerName;
private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
if (User.Identity.IsAuthenticated)
{
Commerce.CustomersDB accountSystem = new Commerce.CustomersDB();
Commerce.CustomerDetails customerDetails =
accountSystem.GetCustomerDetails(User.Identity.Name.Substring(0,User.Identity.Name.IndexOf(":")));
CustomerName.Text = customerDetails.FullName;
}
}
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: questa chiamata è richiesta da Progettazione Web Form ASP.NET.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Metodo necessario per il supporto della finestra di progettazione. Non
modificare
/// il contenuto del metodo con l'editor di codice.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}

Nella pagina aspx scrivo : <asp:label id="CustomerName" runat="server">
</asp:label> E QUA VEDO IL RISULTATO VOLUTO


Mentre in un'altra pagina volevo quasi lo stesso effetto ma con le righe qua
sotto ma è un casino...
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Net;
using System.IO;
using System.Text;
using System.Web.Security;

namespace Commerce{
public abstract class C_MenuLogin : System.Web.UI.UserControl {
protected System.Web.UI.WebControls.TextBox email;
protected System.Web.UI.WebControls.TextBox password;
protected System.Web.UI.WebControls.CheckBox RememberLogin;
protected System.Web.UI.WebControls.ImageButton LoginBtn;
protected System.Web.UI.WebControls.RequiredFieldValidator emailRequired;
protected System.Web.UI.WebControls.RegularExpressionValidator emailValid;
protected System.Web.UI.WebControls.RequiredFieldValidator passwordRequired;
protected System.Web.UI.WebControls.Label Message;
protected System.Web.UI.HtmlControls.HtmlForm Form1;
protected System.Web.UI.WebControls.Label CustomerName;
public C_MenuLogin() {
this.Init += new System.EventHandler(Page_Init);
}
private void Page_Load(object sender, System.EventArgs e)
{
if (User.Identity.IsAuthenticated)
{
Commerce.CustomersDB accountSystem = new Commerce.CustomersDB();
Commerce.CustomerDetails customerDetails =
accountSystem.GetCustomerDetails(User.Identity.Name.Substring(0,User.Identity.Name.IndexOf(":")));
CustomerName.Text = customerDetails.FullName;
}
}
#region Web Form Designer generated code
private void Page_Init(object sender, EventArgs e) {
InitializeComponent();
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}

praticamente mi da errore parser

allora... l'effetto che io volevo era...
se non sono autenticato mostrami la form di accesso
se sono autentificato mostrami CustomerName

lo so lo so chiedo troppo
ma sono alle prime armi con asp.net c# e ci sto studiando sopra...
dove sta l'errore??

Brainkiller Profilo | Guru

>allora... l'effetto che io volevo era...
>se non sono autenticato mostrami la form di accesso
>se sono autentificato mostrami CustomerName

E' molto difficile capire il significato delle classi che utilizzi all'interno del tuo codice che non sono del .NET Framework. Premettendo che l'autenticazione è funzionante per raggiungere ciò che ti serve è sufficiente nel page load inserire qualcosa del tipo:

if (Context.User.Identity.IsAuthenticated)
{LabelPane.Visible=true;
LoginPane.Visible=false;
}
else
{LabelPane.Visible=false;
LoginPane.Visible=true;
}

Nel file .aspx devono esserci gli oggetti corrispettivi esempio:

<asp:PlaceHolder runat="server" ID="LabelPane">
</asp:PlaceHolder>

<asp:PlaceHolder runat="server" ID="LoginPane">
</asp:PlaceHolder>

dentro ad essi nel primo metti una Label normale che poi riempi con il nome e nel secondo i controlli di login, textbox, pulsante, ecc.

ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5