Domanda

Ho un sito web esistente utilizzando l'autenticazione moduli con provider SQL. Ora sto cercando di integrarsi con un altro sito web e utilizzare il loro meccanismo di autenticazione. Sono già in grado di convalidare un utente e cercando di login in silenzio l'utente nella mia applicazione. Ecco il codice per il login "silenzioso":

if (user != null) // logged in!
{
    IPrincipal principal = new MyPrincipal(user);
    FormsAuthentication.SetAuthCookie(user.ScreenName, true);

    HttpContext.Current.User = principal;

    Response.Redirect("~/Default.aspx");
}

e funziona con l'eccezione che Forms Authentication sostituisce l'HttpContext.Current.User per il momento i renderlo "default.aspx". C'è un modo per i fornitori di forme di bypass di ruolo e di appartenenza?

È stato utile?

Soluzione

Se si utilizza un principal personalizzato, il principale personalizzato deve essere stabilito su ogni richiesta al server web; non è persistente. L'aggiunta di codice per ricaricare in global.asax avrebbe risolverlo. Altri hanno creato un HTTP modulo a fare anche questo.

HTH.

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