276 messaggi dal 03 ottobre 2006
per completezza aggiungo il codice che ho dentro login.aspx che ho modificato rispetto a quello creato automaticamente solo per il controllo che l'indirizzo email della login sia stato confermato dato che vorrei usare una login basata sulla conferma dell'email

protected void LogIn(object sender, EventArgs e)
{
if (IsValid)
{
// Convalidare la password utente
var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();
var signinManager = Context.GetOwinContext().GetUserManager<ApplicationSignInManager>();
var user = manager.FindByName(Email.Text);

// Questa opzione non calcola il numero di tentativi di accesso non riusciti per il blocco dell'account
// Per abilitare il conteggio degli errori di password per attivare il blocco, impostare shouldLockout: true
var result = signinManager.PasswordSignIn(Email.Text, Password.Text, RememberMe.Checked, shouldLockout: false);
if (user!= null && !user.EmailConfirmed && result == SignInStatus.Success)
{
FailureText.Text = "Dati non validi, devi prima confermare l'indirizzo";
ErrorMessage.Visible = true;
return;
}
switch (result)
{
case SignInStatus.Success:
IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);
break;
case SignInStatus.LockedOut:
Response.Redirect("/Account/Lockout");
break;
case SignInStatus.RequiresVerification:
Response.Redirect(String.Format("/Account/TwoFactorAuthenticationSignIn?ReturnUrl={0}&RememberMe={1}",
Request.QueryString["ReturnUrl"],
RememberMe.Checked),
true);
break;
case SignInStatus.Failure:
default:
FailureText.Text = "Tentativo di accesso non valido";
ErrorMessage.Visible = true;
break;
}
}
}

ma il codice che suggerisci tu Moreno dove dovrei metterlo ?
333 messaggi dal 05 novembre 2012
Con molta probabilità non dipende da questo ma lasciare la stessa configurazione in diversi web.config è superfluo e crea confusione...meglio (pensiero personale) lasciare tutto in quello root

/Ciao

Alessio
276 messaggi dal 03 ottobre 2006
si infatti, ne ho messi due perchè non sapevo che pesci pigliare,quando funzionerà tutto lascerò quello sulla root (anche se in realtà quello che metto nelle singole cartelle mi aiuta ad avere un codice più semplice da leggere e a personalizzare l'accesso alle singole cartelle)

Ora ho una novità... mettendo questo
<authentication mode="Forms" >
<forms loginUrl="/Account/Login"></forms>
</authentication>

finalmente funziona a dovere cioè quando provo ad accedere a qualsiasi pagina mi apre quella di login e se inserisco i dati corretti mi apre quella che volevo !!!
Ma a questo punto, il codice che suggerisci di mettere in fase di login mi serve lo stesso ?
Grazie mille...
11.454 messaggi dal 09 febbraio 2002
Contributi

Ma a questo punto, il codice che suggerisci di mettere in fase di login mi serve lo stesso ?

No no, ignora il mio codice. Vedo che stai usando ASP.NET Identity, quindi va bene così. Pensavo che volessi usare il cookie middleware SENZA Identity, motivo per cui ti avevo fornito quel codice.

ciao,
Moreno

Enjoy learning and just keep making
276 messaggi dal 03 ottobre 2006
Ho un secondo problema su questa soluzione
Quando accedo ora va automaticamente nella pagina di login mostrando negli indirizzi il seguente:
http://nomesito/Account/Login?ReturnUrl=%2f
Nella pagina però ho il pulsante "password dimenticata" che dovrebbe aprirmi la pagina "Forgot" in grado poi di farmela reimpostare e quando non usavo la seguente nel web.config:
<authorization>
<deny users="?" />
</authorization>

tutto funzionava
Ora invece se clicco su "password dimenticata" negli indirizzi mi propone:
http://skipperclub.net/Account/Login?ReturnUrl=%2fAccount%2fForgot
ma resta nella pagina di login
Eppure io nel web.config della cartella "Account" ho aggiunto questo:
<location path="Forgot.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
Nell'ipotesi che non me la apra perchè non sono ancora autenticato, ma sembra non bastare... come esco da questo loop?

Nella pagina di login questo è il codice del link alla pagina Forgot:
<asp:HyperLink runat="server" ID="ForgotPasswordHyperLink" ViewStateMode="Disabled">Password dimenticata?</asp:HyperLink>
e questo nel code behind:

protected void Page_Load(object sender, EventArgs e)
{
ForgotPasswordHyperLink.NavigateUrl = "Forgot";
var returnUrl = HttpUtility.UrlEncode(Request.QueryString["ReturnUrl"]);
}
11.454 messaggi dal 09 febbraio 2002
Contributi
Penso che ti convenga prendere come riferimento un nuovo progetto creato con il template di Visual Studio. Fai nuovo -> ASP.NET Web Application (.NET Framework) -> Web Forms -> Autenticazione con account utente individuali.
Questo che ti verrà creato è un progetto già funzionante con ASP.NET Identity e tutte le pagine di gestione dell'account. Cerca di capire che differenze ci sono con il tuo oppure usalo direttamente come base.

ciao,
Moreno
Modificato da BrightSoul il 27 febbraio 2019 08:34 -

Enjoy learning and just keep making
276 messaggi dal 03 ottobre 2006
Il mio progetto parte esattamente da quello di Visual studio che mi suggerisci dove però non è previsto il concetto di non far entrare in prima battuta chi non è loggato.
Allora ho fatto così, ne ho creato uno da zero come mi hai suggerito e finchè non aggiungo il blocco all'accesso la pagina Forgot si mostra tranquillamente, come da me.
Poi aggiungo solo queste righe nel web.config
<authentication mode="Forms" >
<forms loginUrl="/Account/Login"></forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
<!--<authentication mode="None"/>-->
<!--<remove name="FormsAuthentication"/>-->
e

<location path="Account/Login.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="Account/Forgot.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>

e il problema diventa uguale al mio cioè la pagina "Forgot" non me la mostra più
333 messaggi dal 05 novembre 2012
Ciao,

sono molto preso con il lavoro ma il tuo problema mi ha incuriosito, ho fatto qualche prova tra un boccone e l'altro e brevemente questo è quanto

il problema nasce dall'utilizzo delle fantastiche FriendlyUrl...amichevoli un par de c....

amici amici ti ruban la bici :-):-):-):-):-)

  <system.web>
    <authentication mode="None" />
    <authorization>
      <deny users="?"/>
    </authorization>
  </system.web>
  <location path="Account/Login">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
  <location path="Account/Login.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
  <location path="Account/Forgot">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
  <location path="Account/Forgot.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>


Come vedi con le FriendlyUrl abilitate sei costretto a duplicare le impostazioni

Altra cosa meno importante...secondo me non serve mettere authentication mode="Forms" ...serve soltanto a creare confusione...tanto comanda la configurazione in owin (UseCookieAuthentication)

/Ciao

Alessio

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.