Goedendag allemaal,
Op deze witte zaterdag ben ik druk in de weer met een ASP.NET webapplicatie welke in grote lijnen dit moet doen:
- Pagina moet weten of de gebruiker is ingelogd
- Indien niet, inloggen
- Als je bent ingelogt: content weergeven
De content is verspreid over verschillende webforms welke ik graag allemaal de intelligentie wil geven om te controleren of de gebruiker is ingelogt.
Naast een boolean "ingelogt" onthoudt mijn session tracker ook nog zaken zoals: > Voornaam, tussenvoegsel en achternaam (voor een vriendelijke groet)
> Paar booleans zoals: "smileys weergeven" e.d.
De session tracker is een klasse met de naam "Poortwachter". Deze klasse kan gebruikers:
- inloggen (gegevens controleren en sessie wegschrijven in database)
- updaten (het laatste levensteken bijwerken in de database)
- Uitloggen (alle sporen verwijderen...)
Nu is het zo dat ik elke keer, op elke pagina, moet controleren of de Poortwachter al bestaat, zo dus:
n.b.: het stukje "cs." geeft aan waar de klasse zich bevind, in java termen: "het package"
voor de leesbaarheid heb ik hier het IF statement even "uitgevouwen"
Het mooie van het verhaal is dat in de Poortwachter klasse methoden zitten zoals: getNaam(), welke dan een juist geformateerde naam terugeeft:
bv "Piet van der Sluis"
Maar om toegang te krijgen tot deze data moet ik dus wel steeds die "aanmaak code" in mijn webform zetten. Nu is dat niet erg, ik bedoel ik heb ook een klembord met CTRL+C & CTRL+V, maar ik vermoed dat er nog een betere optie is....
Alle webforms maken allemaal gebruik van een User Control: header.ascx
In header.ascx staat het menu uitgewerkt (een rijtje met hyperlinks) en dit bestand komt dus overal in mijn applicatie.
Nu maakte ik de logische redenering, als ik nou in die User Control de sessie controleer, dus de Poortwachter klasse defineer, dan kan ik deze overal gebruiken...
Maar dat gaat dus niet zo eenvoudig. Daarom mijn vraag: Kan ik variabelen van een user control overgeven naar een webform zonder gebruik van overmatige code in het webform?
En wie weet heb jij wel een geniaal idee hoe ik dit anders zou kunnen aanpakken? Ik sta open voor alle reacties.
Op deze witte zaterdag ben ik druk in de weer met een ASP.NET webapplicatie welke in grote lijnen dit moet doen:
- Pagina moet weten of de gebruiker is ingelogd
- Indien niet, inloggen
- Als je bent ingelogt: content weergeven
De content is verspreid over verschillende webforms welke ik graag allemaal de intelligentie wil geven om te controleren of de gebruiker is ingelogt.
Naast een boolean "ingelogt" onthoudt mijn session tracker ook nog zaken zoals: > Voornaam, tussenvoegsel en achternaam (voor een vriendelijke groet)
> Paar booleans zoals: "smileys weergeven" e.d.
De session tracker is een klasse met de naam "Poortwachter". Deze klasse kan gebruikers:
- inloggen (gegevens controleren en sessie wegschrijven in database)
- updaten (het laatste levensteken bijwerken in de database)
- Uitloggen (alle sporen verwijderen...)
Nu is het zo dat ik elke keer, op elke pagina, moet controleren of de Poortwachter al bestaat, zo dus:
n.b.: het stukje "cs." geeft aan waar de klasse zich bevind, in java termen: "het package"
code:
1
2
3
4
5
6
7
| cs.Poortwachter pw;
private void Page_Load(object sender, System.EventArgs e)
{
//Session tracker
if(Session["poortwachter"] == null){ Session["poortwachter"] = new cs.Poortwachter(); pw = (cs.Poortwachter) Session["poortwachter"]; } else { pw = (cs.Poortwachter) Session["poortwachter"]; }
//enz... |
voor de leesbaarheid heb ik hier het IF statement even "uitgevouwen"
code:
1
2
3
4
5
6
| if(Session["poortwachter"] == null){
Session["poortwachter"] = new cs.Poortwachter();
pw = (cs.Poortwachter) Session["poortwachter"];
} else {
pw = (cs.Poortwachter) Session["poortwachter"];
} |
Het mooie van het verhaal is dat in de Poortwachter klasse methoden zitten zoals: getNaam(), welke dan een juist geformateerde naam terugeeft:
bv "Piet van der Sluis"
Maar om toegang te krijgen tot deze data moet ik dus wel steeds die "aanmaak code" in mijn webform zetten. Nu is dat niet erg, ik bedoel ik heb ook een klembord met CTRL+C & CTRL+V, maar ik vermoed dat er nog een betere optie is....
Alle webforms maken allemaal gebruik van een User Control: header.ascx
In header.ascx staat het menu uitgewerkt (een rijtje met hyperlinks) en dit bestand komt dus overal in mijn applicatie.
Nu maakte ik de logische redenering, als ik nou in die User Control de sessie controleer, dus de Poortwachter klasse defineer, dan kan ik deze overal gebruiken...
Maar dat gaat dus niet zo eenvoudig. Daarom mijn vraag: Kan ik variabelen van een user control overgeven naar een webform zonder gebruik van overmatige code in het webform?
En wie weet heb jij wel een geniaal idee hoe ik dit anders zou kunnen aanpakken? Ik sta open voor alle reacties.
[ Voor 5% gewijzigd door Verwijderd op 28-02-2004 11:33 ]