Håller på och gör en läcker inloggning "enligt mig :)"
Tänkte använda mig av forms authentication fast inloggningsformuläret är ett modalt dialogfönster som kontrollerar uppgifterna vid inloggning.
Nu är problemet att om uppgifterna godkänns så vill jag att dialogen ska stängas ner och min parent sida ska redirectas till en underkatalog som är skyddad med forms authentcation.
Jag har provat något i still med detta utan framgång
....låter snarare som ett javascript-problem än ett asp.net problem?
...en lösningen kan vara att lägga javascriptet som en js-funktion och om inloggningen lyckades så kan du lägga till ett "onLoad" attribut på Body-taggen som gör att scriptet körs...
Nja jag skulle inte säga att det är ett javascript problem då javascripten inte fungerar som vanligt i asp.net. I vanlig klassisk asp är det ju inga problem att använda sig av det scriptet jag skrev i mitt första inlägg men i asp.net fungerar det inte alls, iaf inte när jag har serverkontroller.
Det här verkar vara nått som jag är på jakt efter men får det inte att funka. http://www.123aspx.com/ReadReviews.aspx?res=22909 nån som har tid att lägga ett öga och säga om det kan vara användbart för mitt endamål?
I codebehindfilen på dialogen ser koden ut såhär ...
if (UserID.Text == "maqe" && PassWrd.Text == "qwe123")
{
FormsAuthenticationTicket Field = new FormsAuthenticationTicket(UserID.Text, true, 5000);
FormsAuthentication.RedirectFromLoginPage(UserID.Text, true);
//Response.Redirect("../secure/default.aspx");
//Page.RegisterStartupScript("closeit", "\<script language='JavaScript'\>window.close();\</script\>");
}
else
{
lblMessage.Text = "Fel Namn eller Lösen !!";
}
}
det är det som är rödmarkerat som ställer till problem ... där vill jag att dialogen ska stängas och att min sida som öppnade dialogen ska redirectas till /secure/default.aspx ... det borde inte vara ursvårt att lösa väl?
Du vill alltså att din popup-rutan som är en login-ruta skall stängas och den sida som öppnade popup-rutan skall redirectas till en ny sida.
Om du gör: response.redirect("../.."); så kommer du göra denna redirect på din popup-sida som du sedan stänger ner. För att kunna redirecta den sidan som öppnade popupen så måste du lösa det med javascript.
opener.location.href = "../secure/default.aspx";
Denna lilla kodsnutt skall skrivas ut i Popup-rutan innan den kör selt.close(); och den kommer då att leta upp den sida som öppnade popupen och kommer skicka den sidan till ../secure/default.aspx.
När jag sedan testar min inloggning så lyckas inloggningen men sedan visar den parentfönstret i popupen. Mao körs inget script verkar det som ... Kan det ha nått med postback eller nått sånt att göra?
...Eller så triggar du en "Submit" i ditt Parent-fönster från din PopUp genom att
skriva (efter att du har kollat användarnamn osv...):
'Förutsätter att du har ett formulär (Form1) i Parent-fönstret...
js = "<script>window.opener.document.form1.submit();</" & "script>"
response.Write(js)
Då kan du göra vilken form av redirect eller kontroll du vill i Parent-fönstrets
Page_Load event.
Ett tips är att i din PopUp skapa sessions-variabler som du kan kolla av i Page_Load
i Parent-fönstret. (ex. if session("inloggad") = "ja" then ...)
Kanske inte är det mest optimala men det funngerar bra för mig.
showModalDialog() är en IE-specifik funktion som öppnar ett nytt fönster precis som window.open() med skillnaden att funktionen inte returnerar innan fönstret är stängt. Annars fungerar det ungefär som ett vanligt fönster.
Vill du att någon ska hända efter att fönstret stängts? Placera JScript-kod efter showModalDialog. Vill du stänga fönstret med en knapp? Prova <INPUT style="Z-INDEX: 101; LEFT: 104px; WIDTH: 104px; POSITION: absolute; TOP: 88px; HEIGHT: 32px" type=button value=Close onclick="window.close();">
IE-specifika funktioner kan du mycket väl använda. Tänk dock på att du alltid måste göra en lösning för alla andra webbläsare också i så fall. Det innebär mer jobb för dig.
I dokumentationen står det följande för IE-specifika funktioner:
"Standards Information
There is no public standard that applies to this method."
141 ms totalt · 3 externa anrop · v20260731065814-full.b746b907