Dela via


Internetautentisering

Klasserna System.Net stöder en mängd olika mekanismer för klientautentisering, inklusive standardmetoderna för Internetautentisering, grundläggande, sammanfattad, förhandla, NTLM- och Kerberos-autentisering, samt anpassade metoder som du kan skapa.

Autentiseringsuppgifter lagras i klasserna NetworkCredential och CredentialCache som implementerar ICredentials gränssnittet. När en av dessa klasser efterfrågas för autentiseringsuppgifter returneras en instans av NetworkCredential klassen. Autentiseringsprocessen hanteras av AuthenticationManager klassen och den faktiska autentiseringsprocessen utförs av en autentiseringsmodulklass som implementerar IAuthenticationModule gränssnittet. Du måste registrera en anpassad autentiseringsmodul med AuthenticationManager innan den kan användas. Moduler för de grundläggande metoderna för sammandrag, förhandling, NTLM och Kerberos-autentisering registreras som standard.

NetworkCredential lagrar en uppsättning autentiseringsuppgifter som är associerade med en enda Internetresurs som identifieras av en URI och returnerar dem som svar på alla anrop till GetCredential metoden. Klassen NetworkCredential används vanligtvis av program som har åtkomst till ett begränsat antal Internetresurser eller av program som använder samma uppsättning autentiseringsuppgifter i alla fall.

Klassen CredentialCache lagrar en samling autentiseringsuppgifter för olika webbresurser. GetCredential När metoden anropas CredentialCache returnerar rätt uppsättning autentiseringsuppgifter, enligt URI:n för webbresursen och det begärda autentiseringsschemat. Program som använder en mängd olika Internetresurser med olika autentiseringsscheman kan använda klassen, eftersom den CredentialCache lagrar alla autentiseringsuppgifter och tillhandahåller dem på begäran.

När en Internetresurs begär autentisering skickar WebRequest.GetResponse metoden WebRequest till AuthenticationManager tillsammans med begäran om autentiseringsuppgifter. Begäran autentiseras sedan enligt följande process:

  1. Anropar AuthenticationManagerAuthenticate metoden för var och en av de registrerade autentiseringsmodulerna i den ordning de registrerades. AuthenticationManager använder den första modulen som inte returnerar null för att utföra autentiseringsprocessen. Informationen om processen varierar beroende på vilken typ av autentiseringsmodul som ingår.

  2. När autentiseringsprocessen är klar returnerar autentiseringsmodulen en Authorization till WebRequest som innehåller den information som behövs för att komma åt Internetresursen.

Vissa autentiseringsscheman kan autentisera en användare utan att först begära en resurs. Ett program kan spara tid genom att förautentisera användaren med resursen, vilket eliminerar minst en tur- och returresa till servern. Eller så kan den utföra autentisering under programstarten för att vara mer lyhörd för användaren senare. Autentiseringsscheman som kan använda förautentisering anger PreAuthenticate egenskapen till true.

Se även