Conectați Microsoft Passport
În articolul precedent, am analizat ce este Microsoft Passport. Acum vom învăța cum să conectăm serviciul de conectare unică.
Instalați software-ul necesar
În primul rând, trebuie să instalați Microsoft .NET Passport SDK 2.1. În timpul procesului de instalare, selectați ceea ce este instalat în modul Preproducție / Mediu de testare.
Sistemul poate funcționa fie în modul de testare (PreProduction), fie în modul de funcționare (Producție). Modul definește serverele de identificare cu care are loc interacțiunea. În modul de testare, modulul funcționează cu serverul curent-login.passporttest.com. și în cea actuală - cu login.passport.com. Aceste servere au baze de date diferite de site-uri și utilizatori înregistrați. Pentru a pune sistemul în modul de producție, este necesar doar după primirea cheii de producție.
Obținerea cheii de test
Puteți începe conectarea aplicației cu cheia de test (Site ID = 1), care face parte din SDK. Dar vă recomand să petreceți 10 minute pentru a obține și a configura propriul dvs. cheie.
Puteți obține o cheie de testare prin managerul de servicii .NET My Services. Sistemul trebuie să se identifice printr-un pașaport, după care este posibil să creați propriile aplicații în secțiunea Aplicațiile mele.
După ce înregistrarea sa terminat, reveniți la secțiunea Aplicațiile mele. selectați aplicația pe care tocmai ați creat-o. Apoi, selectați operația de chei Download și obțineți-vă o cheie de testare. De asemenea, rețineți numărul serverului (Site ID).
Testați înregistrarea cheii
La înregistrarea cheilor, este mai bine să creați o configurație care să vă permită să plasați mai mult de un site care să susțină pașaportul pe server.
După ce ați introdus o nouă configurație pentru pașaport, puteți instala cheia în sine. Pentru aceasta, trebuie executate două runde ale programului cheie cu următorii parametri:- Partner_1.exe / addkey / s
- Partner_1.exe / makecurrent / t 0 / s
Unde este ID-ul dvs. de site, dar corespunde valorii introduse în câmpul Nume site Web.
După aceasta, trebuie să reporniți serviciul IISADMIN.
Atunci când conectați un pașaport, utilizatorul va merge de obicei la serverul de pașapoarte pentru a introduce numele și parola și introduce datele sale acolo. În plus, pașaportul are posibilitatea de a insera formularul de autentificare pe paginile sale (Inline Sign-In). Cu toate acestea, nu recomand utilizarea acestei funcții. În primul rând, este obligatoriu să utilizeze SSL pe server. În al doilea rând, au existat deja precedente că această posibilitate a fost blocată din motive de securitate. Prin urmare, este mai bine să utilizați prima opțiune.
Vom lua în considerare schema de conectare a unui pașaport, în care serverul nu are propriul sistem de identificare, ci utilizează doar un pașaport. În acest caz, serverul își păstrează de obicei propria bază de date cu utilizatorii, unde stochează datele personale. Pentru a avea acces la anumite resurse, utilizatorul trebuie nu numai să fie identificat, ci și să lase informații suplimentare despre el însuși. Pe fiecare pagină a serverului există un logo de pașaport care vă permite să vă conectați / ieși din sistem.
Pentru aceasta trebuie să implementați următoarele proceduri:- procedurile generale pentru verificarea stării pașaportului
- afișarea logo-ului de intrare / ieșire cu starea curentă
- înregistrarea utilizatorului în sistemul intern cu eliberarea unei părți a datelor din profilul pașaportului
- ieșire
Înregistrarea utilizatorilor în sistemul intern
După intrarea în pașaport, dacă nu găsim o potrivire între pașaport și utilizatorii din baza de date internă, trimitem utilizatorului la pagina pentru a introduce informații suplimentare despre el însuși. Pentru a simplifica procedura de introducere a datelor de către utilizator, vom lua câteva informații din pașaport.
Puteți prelua date utilizând metoda Profil. Înainte de a apela metoda Profile. Este necesar să se numească cel puțin una dintre metodele HasProfile. HasTicket. IsAuthenticated și a returnat valoarea True.
Cu dictionarele, problemele încep:- Lista valorilor dicționarului nu este obținută de la server, ci este stocată local. Aceasta este o greșeală evidentă în arhitectura pașaportului. Dicționarele pe server se pot schimba, iar relevanța acestora față de client nu este garantată de nimeni.
- În dicționarele pentru limba rusă (subdirectorul 1049), codificarea .1252 este instalată în loc de .1251.
- O parte din dicționarele pentru limba rusă, de exemplu, oraș (city.dat) - doar goale.
- Se planifică ca valoarea de la cod să obținem valoarea din dicționar folosind obiectul LookupTable. Acest obiect vă permite să descărcați rapid un fișier text și apoi să obțineți valoarea cu cheie. Dar chiar și acest lucru nu poate fi folosit. De exemplu, Rusia este descrisă în directorul țărilor cu șirul "181, Rusia, 4,2, RU, 7". Obiectul LookupTable poate returna valoarea "Rusia, 4,2, RU, 7" cu codul 181. Și pașaportul ne întoarce valoarea "RU".
Ca urmare, este aproape imposibil să se utilizeze valori pe baza dicționarelor. Pentru acele domenii pentru care există încă dicționare, trebuie să scrieți o procedură de procesare independentă. Și pentru cei care nu - din păcate, utilizatorul va trebui să introducă informații din nou manual.
Apoi, trebuie doar să salvăm datele introduse în sistemul nostru.
Afișarea logo-ului pentru intrare / ieșire
Pentru a afișa sigla, este suficient să faceți un apel la metoda LogoTag2. Rezultatul este un șir care conține codul HTML necesar.
Deconectare
Logout-ul de succes va fi efectuat numai dacă fișierul pe care l-ați specificat în URL-ul Expirare cookie din .NET My Services Manager funcționează corect. Ca fișier, puteți prelua fișierul expire.asp. care se află pe serverul de testare ca parte a SDK-ului. În plus, puteți adăuga un apel Session.Abandon pentru a încheia sesiunea de pe site-ul dvs.
Aceasta finalizează conectarea pașaportului în modul PreProduction. Acum, pentru a activa site-ul, aveți nevoie de:- Încheierea unui acord cu pașaportul.
- Faceți o plată pentru utilizare.
- Prin .NET My Services Manager, faceți o solicitare de traducere a site-ului în modul de producție.
- Așteptați până primiți o dischetă cu o cheie. Din motive de securitate, nu există alte metode de difuzare.
- Prin intermediul programului Passport Administration Utility, transferați pașaportul în modul Production și instalați o nouă cheie primită.
Personalizați aspectul
Setarea aspectului de bază vă permite să plasați logo-uri și text pe formulare. Dar pașaportul oferă un mecanism pentru o mai bună ajustare a aspectului.
În plus, puteți personaliza aspectul nu static, ci în funcție de locul apelului. Pentru aceasta, metodele LogoTag2. LoginUser. AuthURL2 au parametru coBrandArgs suplimentar. Valoarea acestui parametru va fi trecută în scriptul dvs. și poate fi procesată în mod corespunzător.
Utilizarea pașaportului în ASP.NET
În concluzie, voi adăuga câteva cuvinte despre utilizarea unui pașaport în ASP.NET.- Indicăm că vom folosi identificarea prin pașaport. Pentru aceasta, specificați în web.config.
- Conectăm System.Web.Security.
- Declarați variabila privată PassportIdentity myPassport;
- În Page_Load, inițializați variabila myPassport. myPassport = (PassportIdentity) (Page.User.Identity);
- Apoi, efectuăm toate apelurile (FromNetworkServer, IsAuthenticated, etc.), așa cum este descris mai sus.