FormsAuthentication Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Gere serviços de autenticação de formulários para aplicações Web. Esta classe não pode ser herdada.
public ref class FormsAuthentication sealed
public sealed class FormsAuthentication
type FormsAuthentication = class
Public NotInheritable Class FormsAuthentication
- Herança
-
FormsAuthentication
Exemplos
O exemplo de código seguinte mostra o ficheiro Web.config para uma aplicação ASP.NET que utiliza o fornecedor de membros ASP.NET para autenticação de formulários e exige que todos os utilizadores sejam autenticados.
<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>
O seguinte exemplo de código mostra a página de login de uma aplicação ASP.NET que utiliza autenticação de formulários e pertença ao ASP.NET.
Importante
Este exemplo contém uma caixa de texto que aceita a entrada do utilizador, o que constitui uma potencial ameaça à segurança. Por defeito, as páginas Web do ASP.NET validam que a entrada do utilizador não inclui elementos de script ou HTML. Para mais informações, consulte Visão Geral dos Exploits de Scripts.
<%@ 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>
Observações
A autenticação de formulários permite a validação do utilizador e da palavra-passe para aplicações Web que não requerem Windows authentication. Com a autenticação por formulários, a informação do utilizador é armazenada numa fonte de dados externa, como uma Membership base de dados, ou no ficheiro de configuração de uma aplicação. Uma vez autenticado, a autenticação de formulários mantém um ticket de autenticação num cookie ou no URL para que o utilizador autenticado não precise de fornecer credenciais em cada pedido.
A autenticação de formulários é ativada ao definir o mode atributo do elemento de configuração de autenticação para Forms. Pode exigir que todos os pedidos a uma aplicação contenham um ticket válido de autenticação de utilizador usando o elemento de configuração de autorização para negar o pedido de qualquer utilizador desconhecido, como mostrado no exemplo seguinte.
<system.web>
<authentication mode="Forms">
<forms loginUrl="login.aspx" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
</system.web>
No exemplo anterior, qualquer pedido para uma página ASP.NET que faça parte da aplicação requer um nome de utilizador válido fornecido por autenticação de formulários. Se não existir nome de utilizador, o pedido é redirecionado para o .LoginUrl
A FormsAuthentication classe fornece acesso a métodos e propriedades que pode usar numa aplicação que autentica utilizadores. O RedirectToLoginPage método redireciona um navegador para a configuração LoginUrl para que os utilizadores possam iniciar sessão numa aplicação. O RedirectFromLoginPage método redireciona um utilizador autenticado de volta para a URL protegida original que foi solicitada ou para o DefaultUrlarquivo . Existem também métodos que permitem gerir formulários-bilhetes de autenticação, se necessário.
Construtores
| Name | Description |
|---|---|
| FormsAuthentication() |
Inicializa uma nova instância da FormsAuthentication classe. |
Propriedades
| Name | Description |
|---|---|
| CookieDomain |
Obtém o valor do domínio do cookie de autenticação de formulários. |
| CookieMode |
Recebe um valor que indica se a aplicação está configurada para autenticação de formulários sem cookies. |
| CookieSameSite |
Obtém ou define o valor do atributo SameSite do cookie. |
| CookiesSupported |
Recebe um valor que indica se a aplicação está configurada para suportar autenticação de formulários sem cookies. |
| DefaultUrl |
Recebe o URL para o qual a FormsAuthentication classe irá redirecionar se não for especificado nenhum URL de redirecionamento. |
| EnableCrossAppRedirects |
Recebe um valor que indica se os utilizadores autenticados podem ser redirecionados para URLs noutras aplicações Web. |
| FormsCookieName |
Obtém o nome do cookie usado para armazenar o ticket de autenticação de formulários. |
| FormsCookiePath |
Obtém o caminho para o cookie de autenticação de formulários. |
| IsEnabled |
Recebe um valor que indica se a autenticação dos formulários está ativada. |
| LoginUrl |
Obtém o URL da página de login para onde a FormsAuthentication classe vai redirecionar. |
| RequireSSL |
Recebe um valor que indica se o cookie de autenticação de formulários requer SSL para ser devolvido ao servidor. |
| SlidingExpiration |
Recebe um valor que indica se a expiração deslizante está ativada. |
| TicketCompatibilityMode |
Recebe um valor que indica se deve usar o Tempo Universal Coordenado (UTC) ou a hora local para a data de expiração do bilhete. |
| Timeout |
Obtém o tempo antes de expirar um ticket de autenticação. |
Métodos
| Name | Description |
|---|---|
| Authenticate(String, String) |
Obsoleto.
Valida um nome de utilizador e uma palavra-passe contra credenciais armazenadas no ficheiro de configuração de uma aplicação. |
| Decrypt(String) |
Cria um FormsAuthenticationTicket objeto com base no ticket de autenticação de formulários encriptados passado ao método. |
| EnableFormsAuthentication(NameValueCollection) |
Permite a autenticação de formulários. |
| Encrypt(FormsAuthenticationTicket) |
Cria uma cadeia contendo um ticket de autenticação de formulários encriptado adequado para uso num cookie HTTP. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetAuthCookie(String, Boolean, String) |
Cria um cookie de autenticação para um dado nome de utilizador. Isto não define o cookie como parte da resposta de saída. |
| GetAuthCookie(String, Boolean) |
Cria um cookie de autenticação para um dado nome de utilizador. Isto não define o cookie como parte da resposta de saída, para que uma aplicação possa ter mais controlo sobre como o cookie é emitido. |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetRedirectUrl(String, Boolean) |
Devolve o URL de redirecionamento do pedido original que causou o redirecionamento para a página de login. |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| HashPasswordForStoringInConfigFile(String, String) |
Obsoleto.
Produz uma palavra-passe hash adequada para armazenamento num ficheiro de configuração baseada na palavra-passe e no algoritmo de hash especificados. |
| Initialize() |
Inicializa o FormsAuthentication objeto com base nas definições de configuração da aplicação. |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| RedirectFromLoginPage(String, Boolean, String) |
Redireciona um utilizador autenticado de volta para o URL originalmente solicitado ou para o URL predefinido usando o caminho do cookie especificado para o cookie de autenticação de formulários. |
| RedirectFromLoginPage(String, Boolean) |
Redireciona um utilizador autenticado de volta para a URL originalmente solicitada ou para a URL predefinida. |
| RedirectToLoginPage() |
Redireciona o navegador para o URL de login. |
| RedirectToLoginPage(String) |
Redireciona o navegador para o URL de login com a cadeia de consulta especificada. |
| RenewTicketIfOld(FormsAuthenticationTicket) |
Atualiza condicionalmente a data e hora de emissão, a data e a hora de expiração para um FormsAuthenticationTicket. |
| SetAuthCookie(String, Boolean, String) |
Cria um ticket de autenticação para o nome de utilizador fornecido e adiciona-o à coleção de cookies da resposta, usando o caminho de cookies fornecido, ou usando a URL se estiver a usar autenticação sem cookies. |
| SetAuthCookie(String, Boolean) |
Cria um ticket de autenticação para o nome de utilizador fornecido e adiciona-o à coleção de cookies da resposta, ou ao URL se estiver a usar autenticação sem cookies. |
| SignOut() |
Remove o ticket de autenticação de formulários do navegador. |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |