C#.NET - Jobba med databaser
Anslut till MSSQL-databas
Spar exempelkoden nedan i en fil med filändelsen .aspx
Exempelkod:
<%@ Page Language="C#" Debug="true" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SqlClient" %> <html> <head> <title>MSSQL connection - C#.NET</title> </head> <body> <% SqlDataReader dataReader; SqlConnection sqlConn; SqlCommand sqlCmd; sqlConn = new SqlConnection(@"Data source=PCNAME\SQLEXPRESS;Initial Catalog=db_name;Integrated Security=SSPI;Persist Security Info=false;User ID=db_username;Password=;"); sqlConn.Open(); Response.Write("Connected to database"); // Close the connection when done with it. sqlConn.Close(); %> </body> </html>
Konfigurera IIS och SQL Server för att få anslutningen att fungera
För att anslutningen i exemplet ovan ska fungera krävs fyra saker:
Det måste finnas en databas i SQL Server vars namn matchar databasnamnet du anger i parametern Initial Catalog i anslutningssträngen.
Ett SQL server-login vilket fungerar med den programpoolsidentitet (Application Pool Identity) som används av IIS-webbplatsen som innehåller .aspx-filen från vilken anslutningen ska göras.
Databasen måste ha en användare vars login fungerar med den programpoolsidentitet (Application Pool Identity) som används av IIS-webbplatsen som innehåller .aspx-filen från vilken anslutningen ska göras.
Gruppen IIS_IUSRS måste finnas med i listan över grupper eller användare som kan använda IIS-webbplatsmappen.
Användarkontot IIS APPPOOL\DefaultAppPool
- Högerklicka på Windows-startknappen och klicka på Kör.
- Skriv compmgmt.msc i textfältet och klicka på OK. Administrationsverktyget Datorhantering öppnas.
- I den vänstra kolumnen, expandera Lokala användare och grupper.
- Klicka på Grupper.
- Högerklicka på IIS_IUSRS och klicka på Egenskaper.
- Kontrollera om användarkontot IIS APPPOOL\DefaultAppPool finns med i listan över medlemmar.
- Klicka på Avbryt.
Om användarkontot IIS APPPOOL\DefaultAppPool inte finns med i listan över medlemmar måste du lägga till användarkontot. För att lägga till användarkontot IIS APPPOOL\DefaultAppPool:
- Högerklicka på IIS_IUSRS och klicka på Lägg till medlemmar... Fönstret Egenskaper för IIS_IUSRS öppnas.
- Klicka på knappen Lägg till...
- I fältet Ange de objektnamn som ska väljas:, skriv IIS APPPOOL\DefaultAppPool och Klicka på OK.
- IIS APPPOOL\DefaultAppPool läggs till i listan över medlemmar.
- Klicka på OK.
Databas
Börja med att skapa en databas i SQL Server. Starta Microsoft SQL Server Management Studio, logga in och expandera SQL Server i Object Explorer.
Högerklicka på Databases och välj New Database...
Fönstret New Database öppnas. I fältet Database name, skriv det namn du vill ge den nya databasen. Klicka på OK.
SQL server-login
Nästa steg är att kontrollera vilken programpool som används av IIS-webbplatsen som innehåller .aspx-filen från vilken anslutningen görs. Starta IIS-hanteraren. Expandera webbservern i kolumnen till höger, Anslutningar.
Expandera Webbplatser. Klicka på webbplatsen som innehåller .aspx-filen från vilken anslutningen görs för att markera webbplatsen.
Klicka på Avancerade Inställningar... i kolumnen Åtgärder längst till höger.
Kontrollera vilken programpool som används. Standard är DefaultAppPool, välj den. Den här guiden tar inte upp hur du går tillväga
för att använda en annan programpool så väljer du en annan programpool kommer kommunikationen
mellan IIS och SQL-servern inte att fungera.
Stäng fönstret Avancerade inställningar genom att klicka på OK.
I kolumnen till höger, Anslutningar, klicka på Programpooler. Klicka på den programpool vars namn stämmer överens med namnet på programpoolen webbplatsen använder.
Klicka på Avancerade Inställningar... i kolumnen Åtgärder längst till höger.
Kontrollera vilken identitet programpoolen använder. Standard är ApplicationPoolIdentity. Ur säkerhetssynpunkt är det den rekommenderade så välj den. Klicka i fältet med identitetsnamnet och sedan på knappen som visas till höger i fältet. Välj ApplicationPoolIdentity och klicka på OK. Klicka på OK i fönstret Avancerade inställningar för att stänga det.
Databas-användare
För att skapa ett login som fungerar med den programpoolsidentitet du nyss valde, gör följande i Microsoft SQL Server Management Studio: Expandera SQL Server i Object Explorer. Expandera Security och sedan Logins. IIS APPPOOL\DefaultAppPool måste finnas med i listan över tillgängliga logins.
Saknas rätt IIS APPPOOL\DefaultAppPool i listan måste du lägga till detta login. Expandera mappen Security i Object Explorer. Högerklicka på Logins. Välj New Login...
Skriv IIS APPPOOL\DefaultAppPool i fältet Login name och klicka på OK. IIS APPPOOL\DefaultAppPool läggs till i listan över tillgängliga logins.
Nu ska du skapa en användare och för användaren välja IIS APPPOOL\DefaultAppPool som login. I Microsoft SQL Server Management Studio: Expandera databasen du skapade tidigare och expandera undermappen Security.
Högerklicka på Users och välj New User... Skriv in ett valfritt användarnamn i fältet User name. I anslutningssträngen i exemplet ovan ska db_username bytas ut mot användarnamnet du väljer.
Klicka på knappen till höger om fältet Login name. Fönstret Select Login öppnas. Klicka på knappen Browse...
Välj det login du vill använda för användaren (IIS APPPOOL\DefaultAppPool). Klicka på OK.
Nu är du tillbaka i Select Login-fönstret. Det login du valt visas i den nedre rutan till vänster i fönstret. Klicka på OK.
I fönstret Database User - New står det nu IIS APPPOOL\DefaultAppPool i fältet Login name.
Default schema för användaren ska vara dbo och i Membership för användaren, välj db_datareader och db_datawriter. Klicka på OK. Den nya användaren läggs till
i listan över databas-användare.
Gruppen IIS_IUSRS
Lägg till IIS_IUSRS i listan över grupper användare som kan använda webbplatsmappen:
- Starta Utforskaren i Windows.
- Högerklicka på webbplatsmappen som innehåller .aspx-filen från vilken anslutningen ska göras. (C:\inetpub\webbplatsmapp)
- Klicka på Egenskaper.
- Klicka på fliken Säkerhet.
- Klicka på knappen Redigera...
- Klicka på knappen Lägg till...
- Klicka på knappen Avancerat...
- Klicka på knappen Sök nu
- Klicka på IIS_IUSRS för att välja det alternativet.
- Klicka på OK.
- Klicka på OK.
- Klicka på OK.
- Klicka på OK.
Nu aka du kunna ansluta till MSSQL-databasen med exempelkoden ovan.
Mer info:
Add IIS 7 AppPool Identities as SQL Server Logons
Add user to SQL Server 2008 - permission denied