Avatar billede fun22 Nybegynder
08. september 2007 - 12:17 Der er 11 kommentarer og
1 løsning

Fælles funktioner

Hej

Jeg har følgende funktion som jeg gerne vil have på flere sider.

If User.Identity.Name.Length < 1 Then
            Response.Redirect("~/User/Login.aspx?ReturnURL=" & Request.Url.PathAndQuery.ToString())
        End If

Kan man ikke gemme den i en fil og så inkludere den på de sider hvor den skal være i stedet for at skule skrive den på alle siderne??

Mvh
Jesper
Avatar billede neoman Novice
08. september 2007 - 13:39 #1
Det ser ud til at du bruger forms authentication. Er det ikke nemmere slet ikke at inkludere noget software check, men specificere i web.config hvilke sider der kun er adgang til for authenticated users ? Den vil så lave en redirect af sig selv, til den login side som er specificeret i web.config, og efter login returnere til den side man prøvede at komme ind på.
Avatar billede fun22 Nybegynder
08. september 2007 - 13:58 #2
Er det ikke kun mapper man kan beskytte via web.comfig filen??
Avatar billede neoman Novice
08. september 2007 - 14:11 #3
Avatar billede ieconfig Nybegynder
08. september 2007 - 14:14 #4
Lad dine beskyttede sider arve fra en klasse der tjekker usercredentials.

F.eks
public class ProtectedClass : System.Web.UI.Page
{
    public ProtectedClass()
    {
        if (User.Identity.Name.Length < 1)
            HttpContext.Current.Response.Redirect("~/User/Login.aspx?ReturnURL=" & Request.Url.PathAndQuery.ToString());
    }
}

- og lad så de beskyttede sider arve fra ProtectedClass istedet for System.Web.UI.Page
Avatar billede fun22 Nybegynder
08. september 2007 - 14:58 #5
neoman >> Skal man så lave det her for hver side?
<location path="Logon.aspx">
      <system.web>
        <authorization>
            <allow users="?"/>
        </authorization>
      </system.web>
  </location>

ieconfig >> Hvordan gemmer jeg det i en side og så henter det igen fra andre sider?
Avatar billede neoman Novice
08. september 2007 - 15:02 #6
eftersom authorisation, mig bekendt, læses i config filen i rækkefølge, så burde man kunne udnytte det : specificer hvilke sider der er adgang til først, og lukke alle de siderne efterfølgende, eller det omvendt, afh af hvad der er flest af. Prøv dig lidt frem og kig på msdn.
Avatar billede ieconfig Nybegynder
09. september 2007 - 09:08 #7
Du behøver ikke gemme det i en side. - Lav en klasse som de kan arve fra, som mit eksempel ovenover.
Avatar billede fun22 Nybegynder
09. september 2007 - 09:57 #8
Den klasse hvor gemmer jeg den henne? Skal den bare sære på min masterpage så eller ??
Avatar billede ieconfig Nybegynder
09. september 2007 - 22:06 #9
hvis du bruger masterpages, så kan du bare smide:

        if (User.Identity.Name.Length < 1)
            HttpContext.Current.Response.Redirect("~/User/Login.aspx?ReturnURL=" & Request.Url.PathAndQuery.ToString());

ind i dennes ctor
Avatar billede fun22 Nybegynder
13. september 2007 - 20:35 #10
Den skriver at User ikke er defineret..
Avatar billede fun22 Nybegynder
13. september 2007 - 20:50 #11
Nu har jeg fået det til at virke.. Men hvordan kalder jeg den så på en af de andre sider?
Avatar billede fun22 Nybegynder
27. november 2007 - 17:11 #12
Lukker... Gik fra det igen..
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester