[Asp.Net] registratie form login form met een masterpage

Pagina: 1
Acties:

  • maxtz0r
  • Registratie: Februari 2007
  • Laatst online: 17-12-2022
Ik heb een normale website waar je als gebruiker kan registreren en inloggen. De website in kwestie is een C# .net web applicatie. Er is een masterpage waar redelijk vlak na de body tag een Form begint met als runat server.

Nu heb ik als verbetering een nieuw registratie formulier gemaakt en een nieuw login formulier. De bedoeling is dat deze formulieren als modal dialog worden geladen. Dit had ik in eerste instantie gedaan door een usercontrol te maken met daarin het formulier.

Nu loop ik tegen het probleem dat er dan een "form in form" foutmelding ontstaat, logisch natuurlijk wat de user control wordt geladen na de eerste form tag en voor het sluiten van de form tag binnen de master page. Vervolgens wat gegoogled en het blijkt nogal een pijnlijk punt te zijn. Als ik bijvoorbeeld kijk naar: http://forums.asp.net/t/1...forms+on+an+asp+net+page+ dan is 1 van de reacties gewoon keihard dat dit niet kan. Ook deze: http://stackoverflow.com/...tiple-forms-in-a-web-page zegt dat dit alleen met hacks kan.
De reacties zijn echter alweer van een paar jaar geleden.

Een andere oplossing die ik had was een modal dialog met een iframe naar een .aspx pagina. Dit zorgt echter weer voor zoveel andere problemen dat dit mij geen goede oplossing lijkt

Waar ik naar op zoek ben is ervaring in hoe ik dit kan oplossen. Welke mogelijkheden zijn er of moet ik eraan geloven dat het concept waar deze website in is gemaakt gedateerd is? en een MVC oplossing eigenlijk de enige echte goede oplossing is?

Dying is God's way of telling you, you've been FIRED.


  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-01 03:15
maxtz0r schreef op donderdag 17 juli 2014 @ 11:40:
Waar ik naar op zoek ben is ervaring in hoe ik dit kan oplossen. Welke mogelijkheden zijn er of moet ik eraan geloven dat het concept waar deze website in is gemaakt gedateerd is? en een MVC oplossing eigenlijk de enige echte goede oplossing is?
Er zijn mogelijkheden om in WebForms te werken met meerdere forms, door een lege <form runat="server"></form> op je pagina te zetten en de eigenlijke pagina buiten dat form te houden. Dat breekt alleen een significant aantal features van WebForms tot op zo'n niveau dat je er weinig meer aan hebt. En officieel ondersteund zal het nooit zijn.

Ja; de enige echte goede oplossing is van WebForms afstappen. Het meest logische alternatief is dan inderdaad ASP.NET MVC.

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 16-10-2025
maxtz0r schreef op donderdag 17 juli 2014 @ 11:40:
Ik heb een normale website waar je als gebruiker kan registreren en inloggen. De website in kwestie is een C# .net web applicatie. Er is een masterpage waar redelijk vlak na de body tag een Form begint met als runat server.

Nu heb ik als verbetering een nieuw registratie formulier gemaakt en een nieuw login formulier. De bedoeling is dat deze formulieren als modal dialog worden geladen. Dit had ik in eerste instantie gedaan door een usercontrol te maken met daarin het formulier.

Nu loop ik tegen het probleem dat er dan een "form in form" foutmelding ontstaat, logisch natuurlijk wat de user control wordt geladen na de eerste form tag en voor het sluiten van de form tag binnen de master page. Vervolgens wat gegoogled en het blijkt nogal een pijnlijk punt te zijn. Als ik bijvoorbeeld kijk naar: http://forums.asp.net/t/1...forms+on+an+asp+net+page+ dan is 1 van de reacties gewoon keihard dat dit niet kan. Ook deze: http://stackoverflow.com/...tiple-forms-in-a-web-page zegt dat dit alleen met hacks kan.
De reacties zijn echter alweer van een paar jaar geleden.

Een andere oplossing die ik had was een modal dialog met een iframe naar een .aspx pagina. Dit zorgt echter weer voor zoveel andere problemen dat dit mij geen goede oplossing lijkt

Waar ik naar op zoek ben is ervaring in hoe ik dit kan oplossen. Welke mogelijkheden zijn er of moet ik eraan geloven dat het concept waar deze website in is gemaakt gedateerd is? en een MVC oplossing eigenlijk de enige echte goede oplossing is?
Fancybox heeft een mogelijkheid om een modalpopup te tonen waarbij je naar een url wijst, welke je dan als een iframe inlaad.
Dan kun je dus een aparte login pagina maken, welke je als modalpopup toont, met zijn eigen form, welke je ook gewoon een postback laat doen.

Stop daar iets van javascript bij welke de fancybox sluit na je postback en de pagina ververst en klaar ben je.

Mag je daarna weer iets anders zoeken om te kunnen zeiken op webforms :P

edit: Wat voor andere problemen heb je eigenlijk als je het als een iframe laad?

  • maxtz0r
  • Registratie: Februari 2007
  • Laatst online: 17-12-2022
D-Raven schreef op donderdag 17 juli 2014 @ 13:12:
[...]


Fancybox heeft een mogelijkheid om een modalpopup te tonen waarbij je naar een url wijst, welke je dan als een iframe inlaad.
Dan kun je dus een aparte login pagina maken, welke je als modalpopup toont, met zijn eigen form, welke je ook gewoon een postback laat doen.

Stop daar iets van javascript bij welke de fancybox sluit na je postback en de pagina ververst en klaar ben je.

Mag je daarna weer iets anders zoeken om te kunnen zeiken op webforms :P

edit: Wat voor andere problemen heb je eigenlijk als je het als een iframe laad?
Ja zoiets heb ik inderdaad zelf al gemaakt en opzich werkt het aardig vooral als je dan gebruik maakt van een iframeresizer dan werkt het helemaal mooi.

De formulieren maken gebruik van DotNetOpenAuth en bij het opvragen van authorisatie bij bijvoorbeeld facebook krijg ik de "in a frame because it set 'X-Frame-Options' to 'DENY'".
Daarnaast is het sluiten van de modal dialog vanuit de code behind ook een drama.

Dying is God's way of telling you, you've been FIRED.


  • D-Raven
  • Registratie: November 2001
  • Laatst online: 16-10-2025
Die X-Frame-Options moet je als het goed is ergens kunnen instellen. Ik weet zo uit mn hoofd niet waar, maar dat krijg je vast wel gevonden ;).

Wat betreft het sluiten van een modal dialog vanuit de code behind.. Waarom zou je dat vanuit de code behind willen doen?

Je registreert een startup script vanuit je popup op het moment dat je na een postback wilt dat je popup zich sluit.

JavaScript:
1
2
3
4
5
6
7
 window.parent.SluitHetLoginSchermEnRefresh();

//en dan in de pagina die de popup opent
SluitHetLoginSchermEnRefresh = function() {
   $.fancybox.close();
   window.location.reload(true);
}


Kan eleganter, maar je snapt het idee.

  • maxtz0r
  • Registratie: Februari 2007
  • Laatst online: 17-12-2022
D-Raven schreef op donderdag 17 juli 2014 @ 17:08:
Die X-Frame-Options moet je als het goed is ergens kunnen instellen. Ik weet zo uit mn hoofd niet waar, maar dat krijg je vast wel gevonden ;).

Wat betreft het sluiten van een modal dialog vanuit de code behind.. Waarom zou je dat vanuit de code behind willen doen?

Je registreert een startup script vanuit je popup op het moment dat je na een postback wilt dat je popup zich sluit.

JavaScript:
1
2
3
4
5
6
7
 window.parent.SluitHetLoginSchermEnRefresh();

//en dan in de pagina die de popup opent
SluitHetLoginSchermEnRefresh = function() {
   $.fancybox.close();
   window.location.reload(true);
}


Kan eleganter, maar je snapt het idee.
Dan ben ik toch wel erg benieuwd hoe ik de x-frame-option melding uit de wereld kan helpen want volgens mij is dit niet mogelijk. Ik heb geprobeerd om mijn web.config aan te passen, mijn global.asax en ook nog custom headers meegeven met de request die wordt verzonden naar facebook maar iedere keer dezelfde melding.

Bijvoorbeeld de suggestie die hier staat werkt bij mij niet: http://stackoverflow.com/...d-clickjacking-in-asp-net

Het sluiten doe ik nu inderdaad op een soortgelijke manier.

Dying is God's way of telling you, you've been FIRED.


  • D-Raven
  • Registratie: November 2001
  • Laatst online: 16-10-2025
maxtz0r schreef op vrijdag 18 juli 2014 @ 09:36:
[...]

Dan ben ik toch wel erg benieuwd hoe ik de x-frame-option melding uit de wereld kan helpen want volgens mij is dit niet mogelijk. Ik heb geprobeerd om mijn web.config aan te passen, mijn global.asax en ook nog custom headers meegeven met de request die wordt verzonden naar facebook maar iedere keer dezelfde melding.

Bijvoorbeeld de suggestie die hier staat werkt bij mij niet: http://stackoverflow.com/...d-clickjacking-in-asp-net

Het sluiten doe ik nu inderdaad op een soortgelijke manier.
http://stackoverflow.com/...bidden-by-x-frame-options
Pagina: 1