Autentificarea - totul, și programare
CUPRINS
![Autentificarea - totul, și de programare (asax protejate void) Autentificarea - totul, și programare](https://webp.images-on-off.com/25/171/434x308_ruta8nlirx4c2mpya5cv.webp)
ASP.NET efectuează aplicatii web sub contul ASPNET. Acest lucru înseamnă că, atunci când sarcina nu este prevăzută privilegiile utilizatorului (de exemplu, scrierea unui fișier de pe disc), cererea este refuzat accesul.
Autentificarea utilizatorului este utilizat în cazurile în care aveți nevoie pentru a asigura accesul la secțiuni ale -applications Web numai pentru anumiți utilizatori. Acest lucru poate fi de Internet On-line, forumuri, secțiuni închise în site-ul intranet corporativ al expoziției și așa mai departe.
Securitatea în aplicațiile ASP.NET bazate pe trei operațiuni:
Tipul implicit de autentificare Windows. Valoare Nici unul are sens pentru a stabili dacă un sistem de autentificare privat sau un acces anonim (pentru a îmbunătăți productivitatea).
AutentifikatsiyaWindows
Există 4 tipuri de autentificare Windows. ordinară (de bază), un rezumat (digest), construit (integated) și pe baza certificatelor client SSL. autentificarea obișnuită și concisă utilizată pentru a identifica numele de utilizator și parola este introdusă în caseta de dialog. Ei lucrează bine pe Internet. din moment ce datele sunt transmise prin HTTP. Autentificarea de bază transmite numele de utilizator și parola codificată de bază 64, care este ușor de decodat. Pentru a spori securitatea, puteți utiliza autentificarea de bază cu SSL. Autentificarea de bază este acceptată de majoritatea browserelor.
Autentificarea rapidă este mai sigur, deoarece parola este criptat folosind algoritmul MD 5. Acesta este sprijinit de browserele Internet Explorer 5.0 sau mai mare, sau care urmează să fie instalate pe masina client. NET Framework. În plus, conturile de utilizator ar trebui să fie stocate în Active Directory.
Autentificarea integrată este utilizat pentru autentificarea Windows și nu pot fi aplicate conturilor de Internet. deoarece clientul și serverul trebuie să treacă controlerul de domeniu de testare. La aceleași parole de pe rețea nu sunt transmise, ceea ce sporește securitatea aplicației. Acest tip de autentificare blocate de un firewall, și funcționează numai cu Internet Explorer. Autentificarea integrată este ușor mai lent decât baza sau scurt.
Utilizarea certificatelor SSL este, de asemenea, utilizat în mod obișnuit în Intranet. deoarece Este nevoie de distribuirea certificatelor digitale. Cu acest tip de autentificare, utilizatorii nu trebuie să se înregistreze. Certificatele pot fi comparate cu conturile de utilizator într-un domeniu sau Active Directory.
Următoarele sunt pașii pentru specificarea unei metode de autentificare:
1. Porniți IIS Manager de
2. Faceți clic dreapta pe aplicație și selectați Properties din meniul contextual.
3. În caseta de dialog, accesați fila Directory Security și faceți clic pe Editare sub controlul accesului anonim și autentificare.
![Autentificarea - totul, și de programare (.net) Autentificarea - totul, și programare](https://webp.images-on-off.com/25/171/434x433_7doexsos2y6ehdcapc1q.webp)
4. În caseta de dialog Metode de autentificare, specificați tipul de autentificare.
![Autentificarea - totul, și de programare (.net) Autentificarea - totul, și programare](https://webp.images-on-off.com/25/171/371x432_wu9c42aqkiq803mu0f04.webp)
5. Se specifică drepturile de acces la dosare sau fișiere individuale în dosarul aplicației web. Asigurați-vă că pentru a permite accesul utilizatorului ASPNET.
![Autentificarea - totul, și de programare (pagina de intrare a parolei) Autentificarea - totul, și programare](https://webp.images-on-off.com/25/171/434x276_4q0cg4pj8mj4azgyklmk.webp)
În acest caz, pentru a permite accesul la DENIS și de a refuza accesul la toate celelalte. În schimb, numele de utilizator poate fi numele rolului pe care utilizatorii aparțin - administratori și manageri.
Dacă vrem să protejăm un singur fișier (de exemplu, pentru a confirma ordinea în magazinul Internet), apoi Web.Config în folderul rădăcină, trebuie să adăugați următoarele linii:
Aplicatia preia datele de utilizator utilizând proprietatea de identitate al clasei utilizator. Această proprietate returnează un obiect care conține un nume de utilizator și rol.
bool autentificat = User.Identity.IsAuthenticated;
string name = User.Identity.Name;
bool admin = User.IsInRole ( "Admins");
Formulare-autentificare
Atunci când se utilizează formulare de înregistrare a parametrilor Solicitare de autentificare (de exemplu, nume de utilizator și parola) apare în formularul Web. Pagina de înregistrare este specificată în fișierul Web.config. Prima dată paginile ASP.NET protejate redirecționează utilizatorul către o pagină pentru a introduce o parolă. După înregistrarea cu succes a datelor de autentificare sunt stocate într-un cookie, și nu este necesară o re-tratament pentru înregistrarea paginilor protejate.
Pentru a putea utiliza formulare-autentificare în fișierul Web.config în directorul rădăcină al aplicației trebuie să specificați pagina pentru a introduce parola:
![Autentificarea - totul, și de programare (asax Global protejat) Autentificarea - totul, și programare](https://webp.images-on-off.com/25/171/434x213_sj1f87t5evlwjarmnoqe.webp)
Pe formularul include câmpuri pentru introducerea de utilizator și parolă, și verificați dacă înregistrarea stocată. Când apăsați „Enter“, un utilizator caută cu o astfel de parola și numele de utilizator. Dacă un utilizator este găsit, numit funcția FormsAuthentication.RedirectFromLoginPage (), care specifică un ID de utilizator și un steag stocat pentru înregistrare. Dacă nu - primiți un mesaj de eroare.
protejate void btnLogin_Click (expeditor obiect, System.EventArgs e)
<
if (! IsValid) // verifica corectitudinea datelor introduse
return;
OleDbConnection conexiune = GetDbConnection ();
OleDbCommand comandă = new OleDbCommand (string.Format ( "SELECT id de la clienți WHERE conectare = '' AND parola = ''", datele de conectare, parola), conexiune);
Cititor de OleDbDataReader = command.ExecuteReader ();
if (! reader.Read ()) // parola gresita sau numele de utilizator
<
lblError.Text = „Parolă incorectă - vă rugăm să încercați din nou“;
return;
>
string id = reveni reader.GetInt32 (0) .ToString ();
FormsAuthentication.RedirectFromLoginPage (id, chkbRememberLogin.Checked);
>
de captură (OleDbException ex)
<
lblError.Text = "Eroare bază de date";
>
în cele din urmă
<
connection.Close ();
>
>
Autentificarea bazată pe roluri
Pentru autentificare, roluri atribut bazat pe roluri este aplicat tag-ul permite. De exemplu, dacă dorim să refuze accesul la toate, dar membrii grupului Admin. trebuie să introduceți următoarele linii în fișierul Web.config.
Apoi, pentru fiecare interogare trebuie să asociați conturile de utilizator și roluri. De obicei, acest lucru se face în tratare a evenimentului AuthenticateRequest în fișierul Global.asax.
protejate void Application_AuthenticateRequest (Object expeditor, EventArgs e)
<
HttpApplication apl = (HttpApplication) expeditor;
în cazul în care (appl.Request.IsAuthenticated appl.User.Identity este FormsIdentity)
<
Identitatea FormsIdentity = (FormsIdentity) appl.User.Identity;
tblUsers DataTable = (DataTable) Application [ "UsersTable"];
appl.Context.User = new GenericPrincipal (identitate,
nou string []);
>
>
Codul verifică tipul de autentificare al utilizatorului și că acesta a fost deja înregistrat. Numele de utilizator este extras din proprietatea Nume cookie. Tabel cu nume și roluri de utilizator, pentru a îmbunătăți performanța a fost menținută în obiectul Application. Din acest tabel și găsim rolul utilizatorului, care este stocat în obiectul GenericPrincipal.
Setări de autentificare
Dacă a doua funcție de parametri RedirectFromLoginPage () este falsă. În timp ce viața unui cookie de sesiune. generate de ASP.NET. egală cu valoarea implicită de 30 de minute. Pentru a modifica acest interval este parametrul de formulare timeout fișier tag-ul Web.config. Setați timpul de pași de autentificare în 3:00.
authentication>
Atunci când un cookie de sesiune este returnat în următoarea înregistrare a cererii, acesta este actualizat în mod automat în cazul în care durata de viață a expirat cu mai mult de jumătate. Timpul este salvat viata cookie-ul este de 50 de ani.
Puteți specifica numele cookie-ului de autentificare. plasându-l în atributul name (numele implicit - ASPXAUTH):
authentication>
Implicit autentifikatsonnye cookie este criptat și verificat. Nivelul de protecție poate fi specificat prin atributul de protecție. Toate valoare nu este prestabilită. Înțeles Validarea necesită doar prin cookie. Encript și valoare - doar criptare. Complet de protecție Dezactivați, puteți specifica valoarea Niciunul. Dezactivați protecția are sens în cazul în care datele sunt trimise prin HTTPS.
authentication>
Resetați formulare-autentificare
Resetarea înregistrării poate fi vazut pe multe site-uri. FormsAuthentication.SignOut () metoda este utilizată pentru a reseta autentificarea. El stabilește data de expirare a cookie de pe timpul scurs și cookie-ul este distrus în mod automat.
autentificare Pașaport
autentificare Passport, utilizatorii se pot conecta pe diferite site-uri web, folosind o singură identitate serviciu Microsoft Passport. Aceasta eliberează utilizatorul de înregistrare la fiecare loc, iar site-urile se primesc informații despre profilul de utilizator stocat Microsoft.
![Autentificarea - totul, și de programare (asp) Autentificarea - totul, și programare](https://webp.images-on-off.com/25/171/326x308_klckpzss98g6yk347v5f.webp)
Pentru a utiliza autentificarea Passport în aplicațiile bazate pe web au nevoie pentru a instala SDK-ul Passport. Pașaport SDK este gratuit pentru testare, dar pentru uz comercial pe site-ul este necesar pentru a obține o licență.
La accesarea aplicației cu controalele de autentificare Passport pentru datele cookie cu pașaport. Dacă nu există un astfel de fișier, utilizatorul este redirecționat către pagina de înregistrare Passport.
Pentru a activa acest mod de autentificare în fișierul Web. config trebuie să specificați următoarele:
Obțineți acces la informații despre dvs., puteți utiliza evenimente PassportAuthentication _ OnAuthenticate în fișierul Global.asax.
PassportAuthentication_OnAuthenticate protejate nule (expeditor obiect, PassportAuthenticationEventArgs e)
System.Web.Security.PassportIdentity id = e.Identity;
if (id.IsAuthenticated)
Sesiunea [ "PassportID"] = e.Identity.Name;
Sesiunea [ "nume"] = e.Identity [ "FirstName"] + e.Identity [ "NumeDeFamilie":];
Sesiunea [ "E-mail"] = e.Identity [ "PrefferedEmail"];
>
>
• Descărcați sursa - 3,45 KB • Descărcați de test - 1.08 KB Amintiți-vă că serviciul web - este doar un mijloc. Există multe alte instrumente, cum ar fi HTTPService, comunicare la distanță, etc. Flex. D. În Flex Ajutor un HTTPService cu articolul ASP.NET pe CodeProject arată cum să utilizați tag-ul flex În cazul în care o aplicație web care invocă o mulțime de servicii și de a descărca o mulțime de date pe fiecare pagină cu o mulțime de calcule de fond din baza de date, frâne - ceva ce trebuie făcut: 1. HTTP de compresie HTTP de compresie comprimă conținutul unei pagini de pe server. Acesta comprimă cereri și răspunsuri HTTP, care îmbunătățește în mare măsură pro.