Archief - ASP.NET: authenticate bij inlogpagina

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

borracho

Legacy Member
Had dus op enkele forums de mogelijkheid gezien om een gebruiker te verhinderen een bepaalde pagina te bereiken. oa op http://www.4guysfromrolla.com/webtech/110701-1.2.shtml staat een tutorial, zijn er nog enkele maar ik zie dus niet wat er verschilt met mijn code.

Ik heb dus 2 aspx paginas in een map (staan nog een hoop paginas die wel allemaal publiek toegankelijk zouden moeten blijven) onder wwwroot staan waarvan ik zoals eerder vermeld wil verhinderen dat een persoon de 2de pagina bereikt zonder in te loggen. Op de inlogpagina heb ik dus code om paspoort en dergelijk te controleren. (Deze werkt indien ik werk met labels)

Maar in die tutorial en nog andere staat dus ook dat je een web.config file moet aanmaken. En hier beginnen de problemen. Krijg dus namelijk dadelijk een fout op die authentication mode = forms, (niet enkel op deze pagina maar op elke pagina in die map die ik nu probeer te openen)

'MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS.


Code:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>

	<system.web>
		<authentication mode="Forms">
			<forms name=".ASPXAUTH" 
			       loginUrl="login.aspx"
			       protection="Encryption"
			       timeout="20"
			       path="/"
			</forms>
		</authentication>
	</system.web>


	<location path="reservatie.aspx">
		<system.web>
			<authorization>
				<deny users="?" />
			</authorization>
		</system.web>
	</location>

</configuration>

Een tweede mss wel domme vraag, hoe weet die functie in de loginpagina naar welke pagina hij moet doorverwijzen. Er staat daar indien true dan

FormsAuthentication.RedirectFromLoginPage (TextLogin.Text, False)

Maar hoe zeg je specifiek naar welke pagina.


[edit]had ondertussen al iets gevonden mbt die fout dat de map in je root geconfigureerd moest zijn als programmamap en niet als virtuele map. Maar begrijp eigenlijk niet goed wat ik hiervoor zou moeten veranderen bij mijn mapopties


Alvast bedankt

Borracho

Dreamchaser

Legacy Member
borracho zei:
Een tweede mss wel domme vraag, hoe weet die functie in de loginpagina naar welke pagina hij moet doorverwijzen. Er staat daar indien true dan

FormsAuthentication.RedirectFromLoginPage (TextLogin.Text, False)

Maar hoe zeg je specifiek naar welke pagina.


[edit]had ondertussen al iets gevonden mbt die fout dat de map in je root geconfigureerd moest zijn als programmamap en niet als virtuele map. Maar begrijp eigenlijk niet goed wat ik hiervoor zou moeten veranderen bij mijn mapopties


Alvast bedankt

Borracho

Die redirectfromloginpage stuurt je naar de pagina waar je naartoe wou surfen, maar die niet bereikbaar is zonder in te loggen. Het gaat als volgt:
* Een niet-ingelogde bezoeker surft naar reservatie.aspx
* Zoals in de web.config staat is die pagina niet bereikbaar voor ongekende gebruikers (deny users="?") => de bezoeker wordt automatisch naar de loginpagina gestuurd
* De gebruiker logt in
* De RedirectFromLoginPage stuurt de bezoeker terug naar reservatie.aspx, die hij nu wel kan bekijken

Hoe asp.net weet welke pagina dit is? Kijk dan eens naar je url als je op de inlogpagina terecht komt -> daarin staat een parameter RedirectUrl.

borracho

Legacy Member
k bedankt, verklaart al het een en ander. Vond het gewoon raar dat ik in mijn code van die onclick functie nergens een verwijzing naar de doelpagina moest maken.(behalve dan die redirectfromlogin) Die redirecturl nog niet echt kunnen bekijken omdat ik dadelijk error krijg op die pagina.

Iemand enig idee wat ik met die fout moet doen.
iets gelezen van :"Vervolgens in de IIS Admin een virtuele map aanmaken met als naam bvb 'webpaginas' die naar deze map wijst, en deze virtuale map als een application folder markeren."

Die IIS map zou ik kunnen oproepen door inetmgr bij uitvoeren in te typen maar hoe wijzig ik deze folder naar een application folder. (mss bij eigenschappen van die map, dan asp.net maar zie niet echt iets dat ik zou kunnen wijzigen. )

En iemand enig idee wat de exacte gevolgen voor andere paginas in die map zijn?

borracho

Legacy Member
Als nog iemand ooit dezelfde fout heeft, gewoon rechtsklikken iis, eigenschappen, en bij map, naam van de toepassing activeren.

borracho

Legacy Member
Ik dacht dat het volledig werkt maar ondertussen toch nog een fout gevonden in die redirectfromloging.

Ik heb dus een loginpagina met volgend script na controle of het juiste paswoord is ingevoerd.
Code:
if(Request.Querystring ("ReturnUrl")= "" ) then
	Response.redirect("reservatie.aspx")
	else
	FormsAuthentication.RedirectFromLoginPage (TextBox1.Text, False)
	end if

Het probleem hierbij is dat enkel de else werkt. Dit wil zeggen als ik de beveiligde pagina probeer te openen wordt ik doorverwezen naar deze met in de url een querystring.
bvb http://localhost/map1/login.aspx?ReturnUrl=/eindwerk/reservatie.aspx

Indien ik dan username en paswoord ingeef werkt dit maar als ik direct naar de inlogpagina ga wordt ik dus na ingave niet doorverwezen maar worden gewoon de 2 velden leeggemaakt en krijgt de url ook zo een querystring waarna de ingave weer werkt.

Iemand een idee waarin ik Request.Querystring ("ReturnUrl")= "" zou moeten veranderen.

Bedankt
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan