1

Artikel: Installera Membershipprovidern på din MSSQL databas

Hejsan,
en ny funktion som följer med i ASP. NET 2.0 är membershipprovidern.  Denna möjliggör att du snabbt med att bara dra in ett par kontroller, kan skapa en hel inloggning, registrering, återställning av lösenord, se om olika funktioner för att visa olika info på sidan beroende på om användaren loggat in eller ej. Det är enkelt att skapa denna membershipprovider så länge man kör lokalt med en SQL Express databas, då den skapar sig själv och placerar sig i App_Data. Hursomhelst är det inte lika enkelt när man väl vill köra denna provider online, och om man inte vill göra alla tabeller och kolumner själv, ska jag här snabbt visa hur du lätt installerar membershipprovidern på en MSSQL databas som ligger online, på ett webbhotell som surftown eller liknande.

Så om du skapar ett nytt projekt eller startar ett befintligt i Visual Studio eller Visual Web Developer så kan vi börja.

Det vi ska börja med är att dra ut en loginkontroll och en registreringskontroll för att senare kunna testa, så öppna designläget i VS eller VWD och dra ut en loginkontroll och en registreringskontroll nånstans på sidan.

Nu ska vi se över själva databaskopplingen. Har du ett nytt projekt, så finns förmodligen inte web.config tillagt i ditt projekt, så högerklicka på rootmappen –> Add New Item –> och Web Configuration File. Det är i denna web.config vår databaskoppling till databasen på internet kommer ligga.

Men först innan vi fortsätter ska vi checka av ett par saker till som har med MSSQL databasen online att göra. Först så måste du koppla på funktionen att den ”Remote Connections” eller ”Extern DB åtkomst” det varierar såklart vart denna funktion ligger på ditt webbhotell, jag använde surftown och där finns den här: https://www.surftown.se/account/opendbip.asp

Det kan ta ett tag innan denna inställning aktiveras, så ta gärna en paus på ett par minuter, en kopp kaffe eller liknande så du är helt säker. Sen öppnar du web.config i vårt projekt i VS eller VWD. Nu under <configuration> men ovanför  <system.web> lägger du in vår connectionstring, alltså databaskopplingen. Den ser ut på detta viset:
Kod:


<connectionStrings>
  <clear />
<add name="NamnetPaDinConnectionString" connectionString="Data Source=Ditt.eget.ip.nummer;Initial Catalog=Databasnamnet;User ID=DittAnv;Password=DittLösenord"
  providerName="System.Data.SqlClient" />
  <add name="LocalSqlServer" connectionString="Data Source=ditt.eget.ip.nummer;Initial Catalog=Databasnamnet;User ID=DittAnv;Password=DittLosen"
  providerName="System.Data.SqlClient" />
  </connectionStrings>

Oj nu blev det lite kod, men tad et lugnt den är lätt att förstå, vid första <add name så ser jag till att när sidan är uppe på nätet, att den kopplar upp sig mot ipnummret där databasen ligger, sen i Catalog= skriver jag in vad min databas heter, sen mitt användarnamn och lösenord för databasen. Men varför har jag nu en till nästan identisk <add name till under? Jo av den anledningen att när man kör lokalt kommer den att skapa en ny SQL Express databas annars, nu berättar jag att även när jag kör sidan lokalt på datorn så ska den koppla upp sig mot databasen online.

Så om du lägger upp din sida på nätet nu eller kör igång den lokalt och sen testar logga in vad tror du händer?

Precis, du får ett felmeddelande, visserligen har sidan kontakt med MSSQL databasen online nu, men det finns ju inget i den ännu! Detta var nått jag hade problem med i början och verkligen undrade hur jag skulle lösa det. Sen snubblade jag över ett fenomenalt verktyg som följer med i ASP.Net som automatiskt kopplar upp sig mot databasen online och installerar membershipprovidern, eller tabellerna och kolumnerna. Så om du klickar in dig på ”Den här datorn” –> ”C://” –> ”Windows” –> ”Microsoft.Net” –> ”Framework” –> Här väljer du den senaste versionen du har installerad, i mitt fal heter mappen ” v2.0.50727”

Inne i den mappen så letar du på programmet ”aspnet_regsql” och dubbelklickar på det för att öppna det. Nu kommer en slags guide upp, klicka på nästa. Sen väljer du ”Configure SQL Server for application services” och välj nästa.

Nu ska du fylla i serverns ip adress, sen väljer du ”SQL server authentication” och skriver in ditt Användarnamn och Lösenord, till sist i Database skriver du in vad din databas heter, som tex MinSite_Databas. Klicka på nästa tills programmet kopplar upp sig mot databasen och börjar installera membershipprovidern. När programmet säger att det är klart, kan du stänga det och så går vi tillbaka in i vårt projekt i VS eller VWD och väljer fliken ”Server Explorer”. Nu ska du se din databas ligga där, som du har på nätet, testa att klicka på + framför databasens namn, sen framför + vid Tables. Nu ska det finnas massor av tabeller och kolumner i databasen!

Så dags att testa om det fungerar då. Du kan endera skapa ett användarkonto om du kör lokalt genom ASP.NET Configuration tool under fliken Website i VS eller VWD. Annars kan du starta upp sidan och fylla i registreringsformuläret. Om sidan laddar om och det står att du blivigt medlem, så fungerar nu databasen och du har memebershipprovidern aktiverad på den!

Ha det så bra!
Mvh Roosweb

Share on FacebookTweet about this on TwitterShare on Google+Share on RedditShare on TumblrEmail this to someone
  • Benjamin

    Tjenare Robert! Kom in på din blogg när jag googlade lite på blogengine. Jag har själv surftown och vill jätte gärna skaffa en sån här blogg men jag förstår mig inte på hur jag skapar databasen o hur det fungerar :( adda mig gärna helt_at_helvete@hotmail.com ha det gött!