C#.NET - Jobba med databaser

Webbutveckling / C#.NET

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:

Användarkontot IIS APPPOOL\DefaultAppPool

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:

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:

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