Ska 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!
Inga kommentarer »
Postad av: Ludwig i Vanligt, tags: asp.net, bra, c#, gridview, microsoft, mjukvara, smidigt, utveckling, visual studio, webutveckling
Ibland 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”>
<Columns>
<asp:BoundField DataField=”categoryName” HeaderText=”Kategori” />
<asp:BoundField DataField=”categoryDescr” HeaderText=”Beskrivning” />
<asp:CommandField ShowDeleteButton=”True” />
</Columns>
</asp:GridView>
Eventet för att tex ta bort heter gridView_RowDeleting()
Du måste hantera det på något sätt, tex i codebehind-filen
protected void gridCategories_RowDeleting(Object sender, GridViewDeleteEventArgs e)
{
//Ta bort raden
string categoryToDelete = gridCategories.DataKeys[e.RowIndex]["categoryId"].ToString();
korSqlCmd(”DELETE FROM kdb_categories WHERE categoryId = ‘” + categoryToDelete + “‘”);
}
//Rita om all data från databasen
showCategories();
}
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”
OnRowDeleting=”gridCategories_RowDeleting” >
<Columns>
<asp:BoundField DataField=”categoryName” HeaderText=”Kategori” />
<asp:BoundField DataField=”categoryDescr” HeaderText=”Beskrivning” />
<asp:CommandField ShowEditButton=”True” />
<asp:CommandField ShowDeleteButton=”True” />
</Columns>
</asp:GridView>
Enkelt och nästan identiskt för att redigera och uppdatera. Se alla gridview events man kan använda här.
1 Kommentar »