Come implementare login alternativa per l'autenticazione forme asp.net?
-
12-10-2019 - |
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?
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.