11.886 messaggi dal 09 febbraio 2002
Contributi
Aggiungo anche la versione VB.NET dello snippet di codice presente in questo script.
app.UseCookieAuthentication(New CookieAuthenticationOptions() With {
    .AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
    .Provider = New CookieAuthenticationProvider() With {
        .OnValidateIdentity = SecurityStampValidator.OnValidateIdentity(Of ApplicationUserManager, ApplicationUser)(
            validateInterval:=TimeSpan.FromMinutes(30),
            regenerateIdentity:=Function(manager, user) user.GenerateUserIdentityAsync(manager))},
    .LoginPath = New PathString("/Account/Login")})

Modificato da BrightSoul il 23 febbraio 2015 20.13 -

Enjoy learning and just keep making
19 messaggi dal 29 agosto 2010
Scusate ho messo un dislike per sbaglio. Volevo fare un like :)
Se non ho capito male basta passare isPersistent = false al metodo PasswordSignIn e il cookie viene cancellato al logoff o quando l'utente chiuse il browser ?
Inoltre volevo sapere se c'è una impostazione dell'identity in modo da evitare che un utente possa aprire l'app su più tab sulla stessa istanza di un browser ? Se è possibile vorrei evitare di scrivere qualche filter attribute che vada a fare questo controllo ecc.......
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,

frank2tek ha scritto:

basta passare isPersistent = false al metodo PasswordSignIn e il cookie viene cancellato al logoff o quando l'utente chiuse il browser ?

Esatto. I cookie non persistenti non hanno una scadenza prefissata, e verranno perciò automaticamente cancellati dal browser alla chiusura.

frank2tek ha scritto:

evitare che un utente possa aprire l'app su più tab

Il server non riesce a capire da quale/i tab l'utente stia inviando le sue richieste HTTP. Questo è un problema che forse andrebbe risolto lato client. Esistono modi [url="http://truongtx.me/2014/06/16/cross-tab-communication-using-html5-dom-storage/"]tipo questo, basato su localStorage[/ul], per far comunicare tra loro le pagine aperte in varie tab.

Ma è una cosa che personalmente non ho mai visto nelle applicazioni web, e comunque smetterebbe di funzionare nel momento in cui l'utente apre lo stesso sito da due browser diversi. Spiega qual è esattamente il problema che vuoi evitare.

ciao,
Moreno

Enjoy learning and just keep making
4 messaggi dal 20 settembre 2010
ciao ho uno strano problema su hosting . appena modifico il web config l'autenticazione funziona, dopo un po smette di funzionare e non mi viene creato il cookie di autenticazione .Asp Net.ApplicationCookie. da cosa può dipendere?
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao, il resto dell'applicazione funziona normalmente? Cosa succede esattamente quando provi a loggarti, vieni reindirzzato indietro alla pagina di login?
Prova a contattare il tuo hosting provider, vedi hanno un'idea sulle cause del problema.

Enjoy learning and just keep making
2 messaggi dal 17 agosto 2013
Ciao, io sto cercando di fare login locale tramite una web api ma dopo aver fatto correttamente la login non crea nessun cookie. il metodo di login è il seguente:

public async Task<IHttpActionResult> Login([FromBody]LoginViewModel model)
{
// This doesn't count login failures towards account lockout
// To enable password failures to trigger account lockout, change to shouldLockout: true
var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, false, shouldLockout: false);
switch (result)
{
case SignInStatus.Success:
var user = await UserManager.FindByNameAsync(model.Email);
if (user == null)
{
return GetErrorResult(IdentityResult.Failed("Credenziali non valide"));
}
//ClaimsIdentity claimsIdentity = await SignInManager.CreateUserIdentityAsync(user);
return Ok();
case SignInStatus.LockedOut:
return GetErrorResult(IdentityResult.Failed("Account bloccato"));
case SignInStatus.RequiresVerification:
return GetErrorResult(IdentityResult.Failed("Richiesta verifica"));
case SignInStatus.Failure:
default:
return GetErrorResult(IdentityResult.Failed("Credenziali non valide"));
}
}

la login va a buon fine. Ma ogni chiamata ad una web api decorata con [Authorize] mi torna 401 (ovvero l'utente non è autenticato). Il metodo Startup dell'applicazione setta l'istanza di IAppBuilder così come segue (di default):

app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationMode = AuthenticationMode.Active,
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
LogoutPath = new PathString("/Account/Logout"),
CookieSecure = CookieSecureOption.SameAsRequest,
Provider = new CookieAuthenticationProvider
{
// Enables the application to validate the security stamp when the user logs in.
// This is a security feature which is used when you change a password or add an external login to your account.
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ClienteIdentityUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});

Una cosa non mi è chiara. è veramente necessario creare un cookie? Dopo la login non potrei attaccare all'header delle successive chiamate rest dei parametri che mi autorizzino a utilizzare le web api decorate con [Authorize]? Grazie
2 messaggi dal 17 agosto 2013
Dimenticavo: il progetto ASP.NET MVC WEB API è esposto in una porta diversa dall'app (single page che consuma realmente i servizi). Sono due website differenti in iis. Grazie ancora
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,


Dopo la login non potrei attaccare all'header delle successive chiamate rest dei parametri che mi autorizzino a utilizzare le web api decorate con [Authorize]? Grazie

Certamente, infatti per le Web API di solito si utilizzano dei Token da aggiungere come intestazioni alle richieste HTTP.
Leggi qui alcune considerazioni dell'usare i Token anziché i cookies.
https://auth0.com/blog/2014/01/07/angularjs-authentication-with-cookies-vs-token/

Inoltre, leggi questa discussione.
http://forum.aspitalia.com/forum/post/413111/Progetto-Web-App-Mobile-APP-OAuth.aspx
Ho linkato un paio di applicazioni di esempio.

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.