Come ottenere il controllo di accesso asp.net per autenticare automaticamente un utente precedentemente autenticato?

StackOverflow https://stackoverflow.com/questions/165331

Domanda

Sto cercando di impostare il controllo di accesso per ricordare le credenziali di accesso di un utente che ha precedentemente inserito correttamente il nome utente e la password. Ho impostato la proprietà Remember Me su True, ma non sembra trigerare alcun evento in cui sia possibile leggere il cookie e accedere automaticamente all'utente.

Esiste un meccanismo semplice per raggiungere questo obiettivo?

È stato utile?

Soluzione

Devi richiedere a Google Autenticazione moduli in ASP.NET 2.0

Dovrai configurare la tua applicazione (via web.config) e potrebbe anche essere necessario modificare le impostazioni IIS. Sebbene sia tutto abbastanza semplice, ci sono un sacco di impostazioni che possono essere utilizzate, quindi la cosa migliore è leggere alcuni degli articoli. ScottGu ha un post di blog che contiene molti buoni dettagli.

Ci sono anche molti buoni video su www.asp.net compresi questi Tutorial sulla sicurezza

prova Procedura: creare una pagina di accesso ASP.NET e Scenario: creazione di un sito Web con iscrizione e accesso utente . Se ricordo, devi ancora fare tu stesso l'autenticazione, a meno che tu non usi il provider di appartenenze SQL Server. In tal caso, è comunque necessario impostare il database e web.config.


In sostanza, una volta che hai impostato correttamente la configurazione, hai una pagina di accesso. In quella pagina di accesso dici a Forms Authentication di creare il ticket di autenticazione per te una volta che tu li autentichi:

if (VerifyUser(name, password) ) // this is not a framework method
    FormsAuthentication.RedirectFromLoginPage(
        userName, false); // no persistent cookie

Se si desidera leggere i dati del ticket di autenticazione (da qualsiasi altra parte).

// output just writes to a StringBuilder 'sb' 
output(sb, "Identity.AuthenticationType", Page.User.Identity.AuthenticationType);

FormsIdentity fi = Page.User.Identity as FormsIdentity;
if (fi == null)
{
    output(sb, "Identity Type", Page.User.Identity.ToString());
    return;
}

output(sb, "FormsIdentity.Ticket.IssueDate", fi.Ticket.IssueDate);
output(sb, "FormsIdentity.Ticket.Expiration", fi.Ticket.Expiration);
output(sb, "FormsIdentity.Ticket.Name", fi.Ticket.Name);
output(sb, "FormsIdentity.Ticket.CookiePath", fi.Ticket.CookiePath);
output(sb, "FormsIdentity.Ticket.UserData", fi.Ticket.UserData);
output(sb, "FormsIdentity.Ticket.Version", fi.Ticket.Version);
output(sb, "FormsIdentity.Ticket.IsPersistent", fi.Ticket.IsPersistent);

Il punto è, una volta autenticato, asp.net reindirizzerà l'utente alla pagina di accesso solo se il ticket di autenticazione è scaduto e l'utente si trova su una pagina protetta. Asp.net non continua a chiederti di autenticare l'utente inutilmente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top