Ako používať databázu a ASP relácie zaviesť bezpečnostné ASP

Preklady článku Preklady článku
ID článku: 299987 - Zobraziť produkty, ktorých sa tento článok týka.
Pozn mka
Dôrazne odporúčame, aby všetky užívateľom upgradovať na Microsoft Internet Information Services (IIS) verzia 6.0 na Microsoft Windows Server 2003 spustená. IIS 6.0 významne zvyšuje Web bezpečnosť infraštruktúry. Ďalšie informácie o súčasti IIS vzťahujúce sa k bezpečnosti témy, navštívte nasledovnú webovú lokalitu spoločnosti Microsoft:
http://www.Microsoft.com/technet/security/prodtech/IIS.mspx
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

SUHRN

V tomto krokovom opisuje, ako implementovať zabezpečenie založené na formuláre žiadostí Active Server Pages (ASP). Môžete použiť Tento mechanizmus, keď vaša aplikácia je bezpečnosť rozšírený alebo keď chcete povoliť iba authenticated users. Môžete tiež použiť tento mechanizmus, ak užívatelia nie sú súčasťou vašej vnútornej doméne, napríklad užívateľov internetu. Táto vzorka používa databázy na uloženie užívateľov informácie a potom overuje používateľov proti tomuto databáza.

Predpoklady

  • Microsoft Windows NT 4.0 Workstation, Windows NT 4.0 Server, Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server, alebo Microsoft Windows Server 2003
  • Microsoft Internet Information Server (IIS) 4.0 pre počítače so systémom Windows NT 4.0, Microsoft Internet Information Services (IIS) 5.0 pre počítače so systémom Windows 2000, alebo Microsoft Internet Information Services (IIS) 6.0 pre počítače so systémom Windows Server 2003
  • Microsoft SQL Server 6.5 alebo novšiu verziu programu SQL Server

Ako navrhnúť túto aplikáciu

Tento oddiel stručne načrtáva kroky, ktoré sú povinné implementovať formuláre založené bezpečnosti alebo vlastné zabezpečenia o ASP webovú aplikáciu:
  1. Predstavovať prihlasovacieho formulára pre užívateľa.
  2. Overenie používateľské poverenia proti informácie o používateľovi ktorý je uložený v databáze používateľa.
  3. Vytvorenie relácie premenná a nastaviť jeho hodnotu na identifikáciu používateľa.
  4. Pre každé následné žiadosti, ktoré používateľ umožňuje, potvrdzujú hodnota tejto relácie premenná nie je rovná prázdny reťazec ("") na potvrďte, že používateľ je prihlásený.
  5. Ak premenná je prázdny, buď používateľ nie je platný používateľ alebo používateľovi má odhlásení z relácie. Presmerovať užívateľa na prihlasovacie stránky Ak premenná je prázdny.
  6. Ak prihlasovať sa nevykoná, pretože používateľ neexistuje vo vašom databáza, užívateľ nesmie byť registrovaný na vaše stránky ešte. Presmerovať užívateľa na Register.asp stránok tak, že používateľ môže zaregistrovať na vašich stránkach. keď, kedy používateľ registre, tieto užívateľské detaily sú pridané na užívateľa databáza.
  7. Poskytnúť odkaz na odhlásení stránky na všetkých stránkach s výnimkou prihlasovacie stránky tak, že používateľa môžete odhlásiť z relácie. Túto stránku vymaže relácie premenná, ktorá drží Identifikácia používateľa prostredníctvom Priradenie je prázdny reťazec ("").

Vytvoriť tabuľku užívateľské databázy

  1. Kliknite na tlačidlo Štart, kliknite na tlačidlo Spustiť, typu Poznámkový blok v Otvorené políčko a potom stlačte kláves ENTER, čím začnete Poznámkový blok.
  2. Zvýraznite nasledujúci skript SQL, kliknite pravým tlačidlom myši skriptu, a potom kliknite na tlačidlo Kópia. V programe Poznámkový blok, kliknite na tlačidlo Prilepiť na Upraviť ponuka.
    CREATE TABLE [Users] (
    	[uid] [varchar] (25) NOT NULL ,
    	[password] [varchar] (25) NOT NULL ,
    	CONSTRAINT [PK_Users] PRIMARY KEY  CLUSTERED 
    	(
    		[uid]
    	)  ON [PRIMARY] 
    ) ON [PRIMARY]
    GO
    					
  3. Na Súbor ponuky, kliknite na tlačidlo Uložiť. V Názov súboru zadajte User.txt.
  4. Kliknite na tlačidlo Štart, ukážte na Programy, ukážte na Microsoft SQL Server, a potom kliknite na tlačidlo Analyzátor dotazu. V Pripojenie na server SQL Server dialógové okno, zadajte názov servera, ktorý je spustený server SQL Server, užívateľské meno a heslo na pripojenie na server SQL Server.
  5. Na Súbor ponuky, kliknite na tlačidlo Otvorené. V Otvorené dialógové okno, kliknite na tlačidlo Všetky súbory (*. *) v Súbory typu rámček. Kliknite na tlačidlo User.txt v zozname a potom kliknite na tlačidlo Otvorené.
  6. V DB na paneli s nástrojmi položku vyberte databázu, v ktorej chcete vytvoriť tejto tabuľky. Ak nemáte osobitné kliknite na položku Databáza na tento účel Krčmy chcete vytvoriť túto tabuľku v databáze krčmy vzorky.
  7. Po vybratí databázy, kliknite na tlačidlo Spustiť na Dotaz ponuka spustite dotaz. Tento krok vytvorí tabuľku užívateľov vo vybranej databáza.

Vytvorenie a konfiguráciu virtuálneho adresára

  1. V programe Windows Prieskumník, vytvorte priečinok pod týmto koreňovým uzlom Web. Podľa predvoleného nastavenia Web root je SystemDrive: \Inetpub\Wwwroot. Názov priečinka ASPSecureAPP.
  2. Otvorte internetové služby Správca Microsoft Management Console (MMC).

    Poznámka V systéme Windows NT 4.0 sa tento MMC je pomenovaný Internet Service Manager.
    • Ak chcete otvoriť Správcu internetových služieb na počítač so systémom Windows 2000 alebo Windows Server 2003, kliknite Štart, kliknite na tlačidlo Spustiť, typu inetmgr v Otvorené políčko a potom stlačte kláves ENTER.
    • Otvorte Správca služby Internet na počítači, ktorý je spustený systém Windows NT 4.0, postupujte nasledovne:
      1. Kliknite na tlačidlo Štart, ukážte na Programy, ukážte na Systém Windows NT 4.0 možnosť Pack, a potom kliknite na tlačidlo Microsoft Internet Information Server.
      2. Kliknite na tlačidlo Správca služby Internet.
  3. Rozbaľte Stroj, a potom rozbaľte položku Predvolenej webovej lokality. Kliknite pravým tlačidlom myši ASPSecureAPP priečinok, ktorý ste vytvorili v kroku 1, a potom kliknite na tlačidlo Vlastnosti.
  4. Na Adresár kartu v Vlastnosti dialógové okno, kliknite na tlačidlo Vytvoriť v Nastavenia aplikácie oddiel označiť adresári ako aplikácia.

Vytvoriť vzorka stránky

Poznámka Ak používate program Poznámkový blok vytvárajú tieto stránky, uistite sa, že kliknete na tlačidlo Všetky súbory v Typ súboru rubrika Uložiť ako dialógové okno pri ukladaní súbory.
Logon.asp
Táto stránka umožňuje používateľom, zadajte svoje meno používateľa a heslo na prístup na vašich stránkach.

Skopírujte nasledujúci kód do nové stránky ASP. Uložte súbor ako Logon.asp v priečinku ASPSecureAPP Inetpub\Wwwroot adresár.
<%
'The following three lines of code are used to make sure that this page is not cached on the client.
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
Response.Expires = -1
%>
<html><body>
<form action="Validate.asp" method="post">
<P>
Login ID:&#xa0;&#xa0;  <INPUT type=text id=UID  name=UID> <br>
Password:&#xa0;&#xa0;<input type="password" id="passwd" name="passwd"> 
</P>
<input type="submit" value="Logon" id="submit1" name="submit1">
</form>
</body></html>
				
Validate.asp
Po užívateľovi poskytuje jeho alebo jej prihlasovacie informácie prihlásenie do vašej aplikácie, táto stránka overuje informácie o používateľovi a potom presmeruje používateľa na príslušné stránky.

Skopírujte nasledujúci kód do nových ASP stránku. Zmena parametrov reťazca pripojiť tak, že obsahujú platné hodnoty. Parametrov reťazca pripojiť sú nasledovné:
  • ID užívateľa
  • Heslo
  • Počiatočný katalóg
  • Zdroj údajov
Súbor uložiť ako Validate.asp v priečinku ASPSecureAPP Inetpub\Wwwroot adresára.
<%
Response.Buffer=true

'The following three lines of code are used to make sure that this page is not cached on the client.
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
Response.Expires = -1

Dim userid
Dim Pwd
'Assign the user ID to this variable. The user provides the user ID.
userid= Request.Form("UID")
'Check whether userid is an empty string. If it is empty, redirect to Logon.asp.
'If it is not empty, connect to the database, and validate the user.

if userid <> "" then
    pwd = Request.Form("passwd")
	
    Dim Cn
    Dim Rs
    Dim StrConnect

'Specify the connection string to access the database.
'Remember to change the following connection string parameters to reflect the correct values
'for your SQL server.
    StrConnect = "Provider=SQLOLEDB.1;User ID=<username>;Password=<strong password>;Initial Catalog=pubs;" & _
    "Network Library=dbmssocn;Data Source=servername"

    Set Cn = Server.CreateObject("ADODB.Connection")
    Cn.Open StrConnect
    Set Rs = Server.CreateObject("ADODB.Recordset")
    Rs.Open "Select * from Users where uid='" & userid & "'",Cn
'Check to see whether this user ID exists in your database.
    If Not Rs.EOF then
        If strcomp( pwd, Rs.Fields("password").value , 1) = 0 then
'Password is correct. Set a session variable, and redirect the user to a Default.asp page
'or the main page in your application.
            Session("UID") = userid
            Response.Redirect "Default.asp"
            Response.End
        Else
'Password is incorrect. Redirect the user to the logon page.
            Response.Redirect "Logon.asp"
            Response.End
        End if
    Else
'If the user is not in your database, point him or her to the Register.asp page
'so that he or she can register at your Web site to access your application.
        Response.Redirect "Register.asp"
        Response.End
    End if
Else
    Response.Redirect "Logon.asp"
    Response.End
End if

%>
				
Register.asp
Táto stránka umožňuje zaregistrovať svoje užívateľské meno a heslo na prístup na vašich stránkach.

Skopírujte nasledujúci kód do nových ASP stránku. Zmena parametrov reťazca pripojiť tak, že obsahujú platné hodnoty. Parametrov reťazca pripojiť sú nasledovné:
  • ID užívateľa
  • Heslo
  • Počiatočný katalóg
  • Zdroj údajov
Súbor uložiť ako Register.asp v priečinku ASPSecureAPP Inetpub\Wwwroot adresára.
<%
Response.Buffer=true

'The following three lines of code are used to make sure that this page is not cached on the client.
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
Response.Expires = -1

'Check whether user has submitted user name and password so that you can 
'add that user to the users database and register him or her as a valid 
'user to use this application.
'This is just the minimal code that you need. You can customize this the way you want.
Dim pwd
Dim userid

userid = Request.Form("uname")
pwd = Request.Form("pwd")

If userid <> "" then
    If  pwd <> "" then
        Dim Cn
        Dim Rs
        Dim StrConnect

'Specify the connection string to access the database.
'Remember to change the following connection string parameters to reflect the correct values
'for your SQL server.
        StrConnect = "Provider=SQLOLEDB.1;User ID=<username>;Password=<strong password>;" & _
        "Initial Catalog=pubs;Network Library=dbmssocn;Data Source=servername"

        Set Cn = Server.CreateObject("ADODB.Connection")
        Cn.Open StrConnect
        Set Rs = Server.CreateObject("ADODB.Recordset")
        Rs.Open "Select * from Users where uid='" & userid & "'",Cn,3
        If Rs.RecordCount>0 then
            Response.Write "The Username that you entered has already been taken by someone else."
            Response.Write "Use a different Username."
            Set Rs = Nothing
            Set Cn = Nothing
        Else
            Dim records
            Cn.Execute "INSERT INTO USERS1 (uid,password) VALUES" & _
            "('" & userid & "','" & pwd & "')" , records
            If records=1 then
                Response.Write "You have been registered successfully."
                Set Rs = Nothing
                Set Cn = Nothing
                Session("UID")= userid
                Response.Redirect "Default.asp"
                Response.End 			
            Else
                Response.Write Err.Description
                Set Rs = Nothing
                Set Cn = Nothing
                Response.End 			
            End if
        End if
    Else
    Response.Write "Password is empty. Could not register. Try again."
    End if
End if
%>

<html>
<head>
<script language="javascript">
function callsubmit()
{

if (frm1.pwd.value==frm1.pwdc.value) {
frm1.submit();
}
else
{
alert("Password does not match. Re-enter the password");
}

}
</script>
</head>
<body>
<form action="" method="post" id=frm1 name=frm1>
<P>
Login ID:&#xa0;&#xa0;  <INPUT type=text id=uname  name=uname> <br>
Password:&#xa0;&#xa0;<input type="password" id="pwd" name="pwd"> <br>
Confirm Password:&#xa0;&#xa0;<input type="password" id="pwdc" name="pwdc"> 
</P>
<input type="button" value="Register" id="submit1" name="submit1" onclick=javascript:callsubmit();>
</form>
</body>
</html>
				
Logoff.asp
Táto stránka umožňuje používateľom odhlásiť.

Kópia nasledujúci kód do novej stránky ASP. Uložte súbor ako Logoff.asp v ASPSecureAPP priečinok Inetpub\Wwwroot adresára.
<%
Response.Buffer=True

'The following three lines of code are used to make sure that this page is not cached on the client.
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
Response.Expires = -1

'Set the session variable to an empty string and also destroy the session to make
'to complete the user session.
Session("UID")=""
Session.Abandon
Response.Redirect "Logon.asp"
Response.End
%>
				
Default.asp
Túto stránku môžete použiť na testovanie druhej stránky, ktoré ste vytvorili.

Skopírujte nasledujúci kód do novej stránky ASP. Uložte súbor ako Default.asp v priečinku ASPSecureAPP Inetpub\Wwwroot adresára.
<%
'The following three lines of code are used to make sure that this page is not cached on the client.
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
Response.Expires = -1

if session("UID")="" then 
    Response.Redirect "Logon.asp"
    Response.End
else
    Response.Write "You are logged on as " & session("UID") & "<br>"
end if
%>
<HTML>
<BODY>
<A HREF="Logoff.asp">Click here to log off</A>
<BODY>
</HTML>
				

Pridať kód pre overenie na stránky

Nasledujúci kód kontroly, či má už prihlásený používateľ na vaše webové stránky a bol prihlásený iný ešte.

Skopírujte tento blok kódu do každej z vašich zabezpečených stránok ASP okrem Logon.asp stranu a stranu Validate.asp. Nepridávajte tohto kódexu, na Logon.asp stránku alebo na stránke Validate.asp. Uistite sa, že ste prilepte tento kód v hornej časti každej stránky Tento kód sa zobrazí prvý.
<%
'The following three lines of code are used to make sure that this page is not cached on the client.
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
Response.Expires = -1

if session("UID")="" then 
    Response.Redirect "Logon.asp"
    Response.End
end if
%>
				

Ako táto aplikácia funguje

V podstate, táto aplikácia má dve stránky (Logon.asp a Register.asp), že môže zobraziť ktokoľvek bez zadania svoje poverenia. Ak chcete zobraziť Zvyšok stránky, používateľ musí prihlásiť pomocou platné ID používateľa a heslo. Preto, keď používateľ spustí priamo na stránku, ktorá vyžaduje prihlásenie informácie, používateľ je presmerovaný na stránku Logon.asp. Používatelia musia poskytnúť platné ID používateľa a heslo na stránke Logon.asp. Ak heslo je nesprávne, môžete skúsiť používateľa Prihláste sa znova.

Ak používateľa user ID a heslo neexistujú v databáze používateľa je presmerovaný na stránku Register.asp, kde používateľ môže zaregistrovať na použitie vášho aplikácia. Keď užívateľ zaregistruje na vaše webové stránky prostredníctvom Register.asp stránka, že používateľské údaje zapisujú do databázy používateľských ste pomocou na overenie používateľov.

Riešenie problémov

  • Na základe požiadavky a ako bezpečný tejto aplikácie je, môžete zapnúť šifrovanie Secure Sockets Layer (SSL) na Logon.asp aby sa zabránilo prenos používateľské poverenia nešifrovaný text.
  • Tieto používateľské kontá priradiť k Windows účtov. Preto priamo nemôžete použiť vaše Windows účty na prihlásenie na toto aplikácia.
  • Tento bezpečnostný mechanizmus používa ASP relácie-založenej informácie. Preto tento mechanizmus nefunguje pre používateľov, ktorí nemajú povolené súbory cookie.

ODKAZY

Ďalšie informácie získate po kliknutí na nasledovné číslo článku databázy Microsoft Knowledge Base:
172138Ako vytvoriť virtuálny adresár v Internet Information Services (IIS)
282060 Zdroje pre zabezpečenie Internetové informačné služby
299970 Ako používať povolenia NTFS na ochranu webovej stránky beží na IIS 4.0 alebo 5.0

Vlastnosti

ID článku: 299987 - Posledná kontrola: 31. októbra 2011 - Revízia: 2.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • Microsoft Active Server Pages 4.0
Kľúčové slová: 
kbaspobj kbdatabase kbhowtomaster kbsecurity kbmt KB299987 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:299987
Upozornenie na neaktuálny obsah článku databázy KB
Tento článok obsahuje informácie o produktoch, pre ktoré spoločnosť Microsoft už neposkytuje technickú podporu. Z tohto dôvodu je tento článok publikovaný ako nezmenený a už nebude aktualizovaný.

Odošlite odozvu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com