Författararkiv
Okt
02
2008
Forms authentication mot ett AD i asp.netPostad av: Ludwig i Vanligt, tags: active directory, asp.net, fungerar, iis, microsoft, mjukvara, smärtfritt, webutvecklingSka man göra en applikation åt ett företags intranät, vill man ofta kunna autensiera sina användare direkt mot ett (kanske) befintiligt Active Directory. Det är ju superenkelt! Inga inställningar i din kod behövs, det är bara att bocka i “windows authentication” i IIS’en som hostar din site, den måste förstås vara en medlem i AD’t också. Men om du vill ha en logga ut knapp, då blev det genast lite mer krångligt. Ofta vill man ju det, och dessutom ha en vettig loginsida, med standard windows autensiering hoppar man annars direkt in i siten, inloggad och klar. Lösningen heter att autensiera sig mot ett AD med forms authentication i ASP.NET. Jag har sökt mycket och länge, men hittade det här briljanta lösningsförslaget hos Microsoft. Fungerar klockrent!
Sep
28
2008
Att få ut primärnyckels värde från en gridview (ASP.NET)Postad av: Ludwig i Vanligt, tags: asp.net, bra, c#, gridview, microsoft, mjukvara, smidigt, utveckling, visual studio, webutvecklingIbland vill man kunna ta bort poster i en databas från en gridview. Här följer ett litet exempel på hur man kan göra för att få fram databasradens primärnyckelvärde för att veta vad man ska ta bort (ändra/uppdatera eller vad du vill göra). I “gridview” kontrollen på din aspx sida (ej codebehind) behöver du ange property för “DataKeyNames” (primärnyckeln i din datasource som du anger för gridviewen), välja vilka boundfields du vill visa samt säga åt gridden att rita upp “ta bort”-knappen för varje rad. <asp:GridView ID=”gridCategories” runat=”server” DataKeyNames=”categoryId”> Eventet för att tex ta bort heter gridView_RowDeleting() protected void gridCategories_RowDeleting(Object sender, GridViewDeleteEventArgs e) //Rita om all data från databasen Det intressanta i koden ovan är [e.RowIndex] som talar om vilken rad i gridden vi håller på med och ["categoryId"] som är en DataKeyName för gridviewen. (primärnyckeln i databasen är ju lämpligt att använda) Måste också koppla eventet till funktionen i codebehind-filen på aspx sidan: <asp:GridView ID=”gridCategories” runat=”server” DataKeyNames=”categoryId” Enkelt och nästan identiskt för att redigera och uppdatera. Se alla gridview events man kan använda här.
Sep
23
2008
SessionvariablerPostad av: Ludwig i Vanligt, tags: asp.net, bra, c#, smidigt, utveckling, webutvecklingDet kan vara smidigt att lagra temporär data i form av sessionvariabler när en besökare surfar på din site. Kanske är det till och med att föredra över requests och querystrings? Varje besökare får ett unikt session-id. //Deklarera sessionvariabel och tilldela whetever värde På vilken sida som helst kan du sen plocka fram “anvandarid” på följande sätt; Label1.Text = Session["fornamn"].ToString(); En förutsättning är att sessionen fortfarande är aktiv, vilket den normalt är i 15-20 minuter.
Sep
22
2008
Skicka variabler i ASP.NET med POSTPostad av: Ludwig i Vanligt, tags: asp.net, bra, c#, programmering, utveckling, visual studioDet heter ju egentligen inte POST längre, request ska vara ett mer korrekt namn. På din sida Default.aspx finns en Label och en Button. Sätt knappens postbackurl till sidan som ska ta emot variabeln; //Sätt rätt pburl //Sätt label till något På Default2.aspx finns det inget mer än en Label, vars värde vi tilldelar i Page_Load() genom att fånga variabeln från förra sidan. //Fånga upp variabeln Klart!
Sep
21
2008
Skicka variabler mellan sidor i ASP.NETPostad av: Ludwig i Vanligt, tags: asp.net, c#, exempel, Intressant, microsoft, säkerhet, sql, utveckling, visual studio, webutvecklingÄr superenkelt men samtidigt en av dom viktigare sakerna att hålla koll på om man ska göra en hyffsat interaktiv webbplats. Det finns två (enkla) sätt att göra detta på, GET och POST. Jag kommer att beskriva den första, GET. Det hela bygger på klienten skickar något till servern och du tar hand om det och du gör något med det. Ett exempel; en webbutik. Du ser en meny med kategorier, klickar dig vidare och ser en lång lista av produkter. Det vore ju ganska dumt att göra en ny sida för varje produkt, därför skickar man med en variabel som bestämmer vad för något som ska visas. http://www.enbrawebbutik.com/prod.aspx?id=89964 Här har du som användare klickat på något i en produktlista, prod.aspx är samma för alla produkter, men eftersom du också skickar med id=89964 så kan du bestämma vad för information du vill läsa upp ur databasen och fylla din sida med. Men hur fångar jag den variabeln på min sida, prod.aspx, då? Nästan enklare, något i den här stilen: string prodId = Request.QueryString["id"]; Vill du ha flera variabler till samma sida, kanske kategori också, går det lika bra; Du hämtar variablerna på precis samma sätt; Sen har du ju dina id’n, bara att göra något i stil med; Värt att tänka på Är att aldrig (läs ALDRIG) låta en GET vara en sql fråga, eller något annat som har för mycket inflytande på hur din kod fungerar. Tex; prod.aspx?id=select * from prod where prodId = 45342 Låt alltid variabeln vara skild från de funktionerna som ska använda den, och kontrollera din indata på något bra sätt så att användaren inte kan, av misstag eller avsiktligt, avslöja känsliga uppgifter eller radera poster i databasen. Och varför inte då? Jo för då kan en användare lika gärna ändra i adressraden och göra något fult som tex prod.aspx?id=’ or select password from admin eller varför inte göra “drop” på hela din databas. Inte bra. Exemplen ovan är anpassade för C# men fungerar lika bra i VB, fast du kanske behöver göra små modifikationer. |
Inlägg (RSS)