Tja! Forms Authentication fungerar enligt följande (något förenklat): Tack för svaret! Vad händer om du sätter LoginStatus.LogoutAction till Redirect och anger din startsida i LogoutPageUrl? Jag ska ta en titt på detta ikväll men jag e ganska säker på att jag har satt LoginStatus.LogoutPageUrl till startsidan o Login.DesinationPageUrl är den jag sätter när eventen loggedin(Den event som körs när användaren är inloggad men då vi fortfarande befinner oss på första sidan) triggas, och då sätter jag denna till användarens root katalog som jag nämnde oven ex: Tja! Antagligen är det så att loginStatus sparar något i session som login kotrnollen läser av, och det verkar inte finnas någon inställning för detta. Så löseningen på problemet är antagligen att bygga en egen kontroll som håller reda på om man är inloggad och därmed möjligör att logga in/ut.Membership 2.0 problem
Jag har stött på ett problem med Membership i ASP.NET 2.0(C#) till min foto site.
Jag går till första sidan som innehåller Memberships inloggnings kontroll och en login status kontroll(som endast är gömd på första sidan)
Här loggar jag in med testanvändaren(test1).
Jag skickas då till användarens album. Jag trycker då på det enda albumet som finns och får upp bilderna i detta album.
Siten kollar då så att man är inloggad och är man det så får man se bilderna.
Jag kopierar nu adr till detta album.
Nu trycker jag på login status kontrollen på samma sida som då loggar ut mig och skickar mig till första sidan.
Jag klipper nu in adr som jag kopierade som går till min test användares enda album med bilder. När jag kommer till denna sida så visas inte bilderna efter som jag inte är inloggad(siten kollar om användaren är inloggad eller inte).
Jag trycker nu på login status som då tar mig till första sidan igen för att logga in.
Jag loggar nu in på en annan användare(test2).
PROBLEM:
När jag trycker på logga in så har jag kopplat en funktion till eventen som kastas efter man har blivit inloggad. I denna funktion sätter jag Destination path till test2 användarens adr. Trotts detta så skickas jag till den sidan som jag försökte komma åt på test1s album.
FRÅGA:
Jag har försökt styra om var man ska hamna genom destination path och redirect men trotts detta så hamnar jag på denna förra användarens adr(om styrningen har gjorts både i eventen inloggad på inloggnings kontrollen o i page_loaden på första sidan)? Är detta något som är inbyggt i membershipet?
Alltså om man försöker se på en sida där man inte är inloggad och sen loggar in genom att trycka på login status knappen sparar då membershipet undan den adr som man ville komma åt och skickar en dit när man har loggat in?Sv: Membership 2.0 problem
1. Användaren försöker att accessa en sida (sida1.aspx).
2. Om användare inte har rättigheter att accessa den sidan så skickas han automatiskt till inloggningssidan (anges i web.config).
3. Om inloggningen lyckas så skickas användaren tillbaks till den sida som han försökte att accessa (sida1.aspx).
Om man nu har en LoginStatus-kontroll som man kan logga ut med på sidan sida1.aspx och användaren klickar på den så
1. loggas användaren ut och sidan refreshas vilket gör att man
2. skickas till inloggningssidan igen.
3. Lyckad inloggning gör att man skickas till sida1.aspx eftersom det var den som man försökte att accessa.
Om LoginStatus skall bete sig så här eller kanske istället logga ut användaren och skicka honom till en startsida så kan man styra det på litet olika sätt.
På http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.loginstatus.aspx kan man läsa om detta : "The logout behavior is controlled by the LogoutAction property, which specifies whether to refresh the current page, redirect the user to the login page defined in the application configuration settings, or redirect the user to a page specified by the LogoutPageUrl property. The default is to refresh the current page."
Man kan annars få alla möjliga märkliga beteenden om man inte tänker sig för. Jag lyckades med att förvirra användarna totalt en gång efterom jag inte hade konfigurerat Login-kontrollen korrekt:
Om användaren gör ett bokmärke till login.aspx (loginsidan) så kommer han inte att redirectas någon annan stans vid inloggning utan inloggningen kommer att lyckas men användare kommer inte att skickas någonstans automatiskt eftersom det var just login.aspx som han ville till. Detta löses lätt genom en Redirect men var litet förvirrande innan jag kom på varför det betedde sig som det gjorde.
/AndreasSv:Membership 2.0 problem
Jag förstår hur du menar.
Jag ska försöka förklara lite mer ingånde.
1. Alla sidor har en Login status uppe i högra hörnet förutom startsidan.
2. Siten är helt öppen så man kan surfa till alla sidor men vissa sidor kommer visa en bild som förklarar att innehållet är låst. Så jag antar då att detta inte är form autentication?
4. login status är satt till att gå till huvud sidan om man trycker på den och inte är inloggad. Är man inloggad när man trycker på den så loggas man ut och hamnar också här på första sidan.
5. När man loggar in på första sidan så används en login kontroll från membershipet. Det finns här en event som reagerar när användaren är inloggad, denna fångar jag där jag letar upp albums id till användarens root katalog(alltså den första katalogen som skapas när man skapar ett konto och där man kan lägga foto och andra album i). Därefter sätter jag login kontrollens destination adr till denna katalog ex ~/album.aspx?albumId=34. Detta fungerar bra!
6. Går man till första sidan när man redan är inloggad så kastas man till sitt root album, så man kommer inte åt startsidan merän om man är utloggad.
7. Om man inte varit på siten på ett tag och man klipper in en direkt adr till ett album, här kan då visas en ruta att man inte har tillgång till innehållet ELLER så visas det foto. Om jag nu trycker på login status knappen(som det står logga in på) så kommer jag till start sidan, om jag loggar in här så trotts att jag sätter destination sidan till rätt album så hamnar den ändå på det album som jag var sisst på(alltså den direkt adr som jag klippte in i browsern)
Jag har kört break och försökt följa flöder men detta är något som händer bakom kolliserna, för mina redirects eller destination path fungerar inte trotts att de körs??
Jag har letat på login kontrollen men hittar ingen inställning för detta? vad har jag missat?Sv: Membership 2.0 problem
Eller vad har du satt dem till (samt Login.DestinationPageUrl på startsidan)?
/AndreasSv:Membership 2.0 problem
photoalbum.aspx?albumId=323
LoginStatus.LogutAction vet jag inte vad det är, men jag ska ta en titt på detSv: Membership 2.0 problem
Jag har nu tittat på LoginStatus.LogoutAction. Här finns 3 val att göra.
1. Refresh - Laddar om samma sida
2. Redirect - Redirectar till det som står i LogoutPageUrl
3. RecirectToLoginPage - Redirectar till start sidan(i detta fall samma som 2 redirect)
Jag har satt LogoutPageUrl till startsidan.
Jag tror inte detta har något med logout att göra.
När jag går till en katalog som jag inte har behörighet och trycker på LoginStatus(som då visar logga in) så kastas jag till start sidan, när jag loggar in här så kastas jag till baka till samma adr som jag nyss inte hade behörighet till. Detta trotts att jag in login kontrollen på startsidan har en redirect till användarens root adr i enventet mainLogin_LoggedIn.
Den ignorerar alltså redirecten i mainLogin_LoggedIn när man kommer från en sida som man inte hade åtkomst till?
Hur funkar detta? och hur kommer man runt det?Sv:Membership 2.0 problem
Det är egentligen ingen avancerad kontroll.