14. februar 2005 - 23:21Der er
10 kommentarer og 1 løsning
Refresh siden midt i metode og køre koden efter refresh statemen
Hej Jeg ønsker at Refreshe min side midt i en metode og køre koden efter refresh statement. Jeg skal nemlig have kørt en eventhandler i min global.asax fil, og derfor er det vigtig at refreshe eller lave en postback og forsætte koden hvor den slap.
mm.. jeg tror jeg havde ikke stor held med at forklare problemmet.
Det som jeg ønsker, et at kunne opdatere siden eller lave en postback til serveren midt i min metode, og derefter fortsætte efter stedet hvor jeg opdaterede siden eller posted tilbage til serveren.
Noget i denne retning :
private void metode() { kode linie 1... kode linie 2... opdater siden fortsætte med kode linie 3...
ihtezaz>> det lyder mere som om du har et designmæssig uhensigtsmæssighed i din applikation. Måske du kan prøve at forklare dit mere overordnede problem, for at vi på den måde evt. kan hjælpe med en anden løsning.
Det er fordi, at jeg på min login side bruger, FormsAuthentication.SetAuthCookie(txtBNavn.Text,false) metoden, metoden tildeler godt nok authcookien til brugeren, men den redirecter ikke til global.asax siden, hvor jeg i "Application_AuthenticateRequest()" eventhandleren tildeler brugerne deres roller. Kun med en postback kan jeg få Application_AuthenticateRequest()" eventhandler til at køre efter at brugerne er authenticated.
Hej, Jeg har fået løst problemmet nu, godt nok er det ikke den pæneste løsning, men det virker upåkladeligt. Jeg har istedet for brugt FormsAuthentication.RedirectFromLoginPage() og i dens default.aspx side's page_load eventhandler , indsat en metode der afgøre hvilke menu brugeren skal hav, afhængig af rollen.
Jeg lukker dog ikke sp endnu, hvis der en pæner måde at gøre det på, er jeg meget interesseret.
hvordan finder du ud af, hvilken bruger der er tale om (hvilken menu skal loades), når brugeren er på andre sider end default.aspx?
jeg ved ikke om det er en god måde at løse det på, men jeg havde samme problem, og løste det ved at lave en pagetemplate.cs som nedarver fra system.web.ui.page .
i pagetemplate.cs's oninit metode laver så en metode til at genkende brugeren og på baggrund af dette loade den rigtigt menu.
alle sider brugeren kan gå ind på nedarver fra pagetemplate.cs og de får derfor automatisk denne funktionalitet med.
ved ikke om det er til at forstå, og om det er en god måde at løse det på :o) kommentarer er velkommne.
Nu har jeg løst det på en lidt pæner måde. Som jeg tror jeg vil beholde. Din måde ser lidt ud som min, som jeg nu har benyttet mig af.
Jeg gøre følgende: - I min default's vestre frame har jeg login: - Inde i min login side tjeker jeg brugerens indtastning og authenticater derefter. - Når/hvis brugeren har fået auth-ticket, laver jeg en response.redirect. til min MenuRedirect.aspx side. - inden selve redirectet bliver fortaget, udføres Application_AuthenticateRequest() handleren i min global.asax, hvor rollerne bliver fordelt til brugeren. - Derefter sker redirectet til MenuRedirect.aspx, hvor jeg har lagt metode inde i page_load der tjekker User.IsInRole("rolle") o og redirecter derefter.
hvorfor kan du ikke bare redirecte direkte til den side som brugeren kom fra, og på den side tjekke om brugeren i er den pågældende rolle som har lov til at se siden?
Nu har jeg nok fundet det pæneste måde, det kan laves på. Efter at have læst lidt på msdn, fandt jeg ud af, at man faktisk kunne ligge roller på den auth cookie, som brugeren får tildelt, således man ikke skal tjekke det op hver gang ved at tilgå DB. Cookien er selfølgelig krypteret inden den sendes. Men takker for jeres kommentar.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.