FormsAuthentication Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zarządza usługami uwierzytelniania formularzy dla aplikacji internetowych. Klasa ta nie może być dziedziczona.
public ref class FormsAuthentication sealed
public sealed class FormsAuthentication
type FormsAuthentication = class
Public NotInheritable Class FormsAuthentication
- Dziedziczenie
-
FormsAuthentication
Przykłady
Poniższy przykład kodu przedstawia plik Web.config dla aplikacji ASP.NET, która używa dostawcy członkostwa ASP.NET do uwierzytelniania formularzy i wymaga uwierzytelnienia wszystkich użytkowników.
<configuration>
<connectionStrings>
<add name="SqlServices" connectionString="Data Source=MySqlServer;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />
</connectionStrings>
<system.web>
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">
<providers>
<add name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SqlServices"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
passwordFormat="Hashed"
applicationName="/" />
</providers>
</membership>
</system.web>
</configuration>
Poniższy przykład kodu przedstawia stronę logowania dla aplikacji ASP.NET korzystającej z uwierzytelniania formularzy i członkostwa w ASP.NET.
Ważna
Ten przykład zawiera pole tekstowe, które akceptuje dane wejściowe użytkownika, co jest potencjalnym zagrożeniem bezpieczeństwa. Domyślnie ASP.NET strony sieci Web sprawdzają, czy dane wejściowe użytkownika nie zawierają skryptu ani elementów HTML. Aby uzyskać więcej informacji, zobacz Script Exploits Overview (Omówienie luk w zabezpieczeniach skryptów).
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
public void Login_OnClick(object sender, EventArgs args)
{
if (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text))
FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked);
else
Msg.Text = "Login failed. Please check your user name and password and try again.";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Login</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Login</h3>
<asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />
Username: <asp:Textbox id="UsernameTextbox" runat="server" /><br />
Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><br />
<asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />
<asp:CheckBox id="NotPublicCheckBox" runat="server" />
Check here if this is <span style="text-decoration:underline">not</span> a public computer.
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Public Sub Login_OnClick(sender As Object, args As EventArgs)
If (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text)) Then
FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked)
Else
Msg.Text = "Login failed. Please check your user name and password and try again."
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Login</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Login</h3>
<asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />
Username: <asp:Textbox id="UsernameTextbox" runat="server" /><br />
Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><br />
<asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />
<asp:CheckBox id="NotPublicCheckBox" runat="server" />
Check here if this is <span style="text-decoration:underline">not</span> a public computer.
</form>
</body>
</html>
Uwagi
Uwierzytelnianie formularzy umożliwia sprawdzanie poprawności haseł i użytkowników dla aplikacji internetowych, które nie wymagają Windows authentication. W przypadku uwierzytelniania formularzy informacje o użytkowniku są przechowywane w zewnętrznym źródle danych, takim jak Membership baza danych lub w pliku konfiguracji aplikacji. Po uwierzytelnieniu użytkownika uwierzytelnianie formularzy utrzymuje bilet uwierzytelniania w pliku cookie lub w adresie URL, dzięki czemu uwierzytelniony użytkownik nie musi podawać poświadczeń z każdym żądaniem.
Uwierzytelnianie formularzy jest włączone przez ustawienie mode atrybutu elementu konfiguracji uwierzytelniania na Forms. Można wymagać, aby wszystkie żądania do aplikacji zawierały prawidłowy bilet uwierzytelniania użytkownika przy użyciu elementu konfiguracji autoryzacji w celu odmowy żądania dowolnego nieznanego użytkownika, jak pokazano w poniższym przykładzie.
<system.web>
<authentication mode="Forms">
<forms loginUrl="login.aspx" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
</system.web>
W poprzednim przykładzie każde żądanie strony ASP.NET, która jest częścią aplikacji, wymaga prawidłowej nazwy użytkownika dostarczanej przez uwierzytelnianie formularzy. Jeśli żadna nazwa użytkownika nie istnieje, żądanie zostanie przekierowane do skonfigurowanego LoginUrlelementu .
Klasa FormsAuthentication zapewnia dostęp do metod i właściwości, których można użyć w aplikacji, która uwierzytelnia użytkowników. Metoda RedirectToLoginPage przekierowuje przeglądarkę do skonfigurowanej LoginUrl dla użytkowników w celu zalogowania się do aplikacji. Metoda RedirectFromLoginPage przekierowuje uwierzytelnionego użytkownika z powrotem do oryginalnego chronionego adresu URL, którego zażądano lub do DefaultUrl. Istnieją również metody, które umożliwiają zarządzanie biletami uwierzytelniania formularzy w razie potrzeby.
Konstruktory
| Nazwa | Opis |
|---|---|
| FormsAuthentication() |
Inicjuje nowe wystąpienie klasy FormsAuthentication. |
Właściwości
| Nazwa | Opis |
|---|---|
| CookieDomain |
Pobiera wartość domeny pliku cookie uwierzytelniania formularzy. |
| CookieMode |
Pobiera wartość wskazującą, czy aplikacja jest skonfigurowana do uwierzytelniania formularzy bez plików cookie. |
| CookieSameSite |
Pobiera lub ustawia wartość atrybutu SameSite pliku cookie. |
| CookiesSupported |
Pobiera wartość wskazującą, czy aplikacja jest skonfigurowana do obsługi uwierzytelniania formularzy bez plików cookie. |
| DefaultUrl |
Pobiera adres URL, do którego FormsAuthentication klasa przekierowuje, jeśli nie określono żadnego adresu URL przekierowania. |
| EnableCrossAppRedirects |
Pobiera wartość wskazującą, czy uwierzytelnieni użytkownicy mogą być przekierowywani do adresów URL w innych aplikacjach internetowych. |
| FormsCookieName |
Pobiera nazwę pliku cookie używanego do przechowywania biletu uwierzytelniania formularzy. |
| FormsCookiePath |
Pobiera ścieżkę pliku cookie uwierzytelniania formularzy. |
| IsEnabled |
Pobiera wartość wskazującą, czy jest włączone uwierzytelnianie formularzy. |
| LoginUrl |
Pobiera adres URL strony logowania, do którego FormsAuthentication zostanie przekierowana klasa. |
| RequireSSL |
Pobiera wartość wskazującą, czy plik cookie uwierzytelniania formularzy wymaga protokołu SSL w celu zwrócenia go do serwera. |
| SlidingExpiration |
Pobiera wartość wskazującą, czy jest włączone przesuwane wygaśnięcie. |
| TicketCompatibilityMode |
Pobiera wartość wskazującą, czy używać uniwersalnego czasu koordynowanego (UTC) lub czasu lokalnego dla daty wygaśnięcia biletu. |
| Timeout |
Pobiera czas przed wygaśnięciem biletu uwierzytelniania. |
Metody
| Nazwa | Opis |
|---|---|
| Authenticate(String, String) |
Przestarzałe.
Weryfikuje nazwę użytkownika i hasło względem poświadczeń przechowywanych w pliku konfiguracji aplikacji. |
| Decrypt(String) |
Tworzy FormsAuthenticationTicket obiekt na podstawie zaszyfrowanego biletu uwierzytelniania formularzy przekazanego do metody . |
| EnableFormsAuthentication(NameValueCollection) |
Włącza uwierzytelnianie formularzy. |
| Encrypt(FormsAuthenticationTicket) |
Tworzy ciąg zawierający zaszyfrowany bilet uwierzytelniania formularzy odpowiedni do użycia w pliku cookie HTTP. |
| Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
| GetAuthCookie(String, Boolean, String) |
Tworzy plik cookie uwierzytelniania dla danej nazwy użytkownika. Nie powoduje to ustawienia pliku cookie w ramach odpowiedzi wychodzącej. |
| GetAuthCookie(String, Boolean) |
Tworzy plik cookie uwierzytelniania dla danej nazwy użytkownika. Nie powoduje to ustawienia pliku cookie w ramach odpowiedzi wychodzącej, dzięki czemu aplikacja może mieć większą kontrolę nad sposobem wystawiania pliku cookie. |
| GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
| GetRedirectUrl(String, Boolean) |
Zwraca adres URL przekierowania dla oryginalnego żądania, które spowodowało przekierowanie do strony logowania. |
| GetType() |
Pobiera Type bieżącego wystąpienia. (Odziedziczone po Object) |
| HashPasswordForStoringInConfigFile(String, String) |
Przestarzałe.
Tworzy hasło skrótu odpowiednie do przechowywania w pliku konfiguracji na podstawie określonego hasła i algorytmu skrótu. |
| Initialize() |
Inicjuje FormsAuthentication obiekt na podstawie ustawień konfiguracji aplikacji. |
| MemberwiseClone() |
Tworzy płytkią kopię bieżącego Object. (Odziedziczone po Object) |
| RedirectFromLoginPage(String, Boolean, String) |
Przekierowuje uwierzytelnionego użytkownika z powrotem do pierwotnie żądanego adresu URL lub domyślnego adresu URL przy użyciu określonej ścieżki pliku cookie dla pliku cookie uwierzytelniania formularzy. |
| RedirectFromLoginPage(String, Boolean) |
Przekierowuje uwierzytelnionego użytkownika z powrotem do pierwotnie żądanego adresu URL lub domyślnego adresu URL. |
| RedirectToLoginPage() |
Przekierowuje przeglądarkę do adresu URL logowania. |
| RedirectToLoginPage(String) |
Przekierowuje przeglądarkę do adresu URL logowania przy użyciu określonego ciągu zapytania. |
| RenewTicketIfOld(FormsAuthenticationTicket) |
Warunkowo aktualizuje datę i godzinę problemu oraz datę i godzinę wygaśnięcia dla elementu FormsAuthenticationTicket. |
| SetAuthCookie(String, Boolean, String) |
Tworzy bilet uwierzytelniania dla podanej nazwy użytkownika i dodaje go do kolekcji plików cookie odpowiedzi, przy użyciu podanej ścieżki pliku cookie lub adresu URL, jeśli używasz uwierzytelniania bez plików cookie. |
| SetAuthCookie(String, Boolean) |
Tworzy bilet uwierzytelniania dla podanej nazwy użytkownika i dodaje go do kolekcji plików cookie odpowiedzi lub do adresu URL, jeśli używasz uwierzytelniania bez plików cookie. |
| SignOut() |
Usuwa bilet uwierzytelniania formularzy z przeglądarki. |
| ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |