5 messaggi dal 30 gennaio 2014
Buongiorno.
Dopo aver studiato il vostro libro ed aver frequentato un corso on line di BrightSoul mi sono immerso in una avvntura con .net 5 ed entity framework. Sto provando a realizzare un sito web gestionale e, nonostante alcune mie limitazioni (sto cercando di superare i miei limiti) il funzionamento di base c'è. Tuttavia quando vado a testare il programma con Visual Studio ed apro un controller sottoposto ad autorizzazione mi reindirizza correttamente alla pagina di login (pages/identity/login) con la corretta querystring, però quando vado a pubblicare le modifiche su un hosting condiviso che uso per il test (hosting di Register, l'indirizzo web è www.buttibis.it) funziona tutto tranne il redirect: dopo una lunga attesa il browser mi dice che non può visualizzare la pagina web, mentre nella barra dell'url appare quello corretto. La cosa ridicola è che se rimuovo la querystring mi visualizza correttamente la pagina di login (che ovviamente sto solo impostando), mentre se la lascio scritta com'è mi impalla il sistema....
Ho provato anche nell impostazioni del server remoto ad attivare la visualizzazione degli errori, ma non mi restituisce alcune errore.
Avete suggerimenti?
Grazie

Valter
5 messaggi dal 30 gennaio 2014
Sto facendo un sacco di prove e di verifiche.
Premetto che per necessità sto usando il servizio di register per l'utilizzo di SSL che comporta il dover riscrivere il nome di dominio in "https://miodominio-it.securesslhosting.it".
Al momento sono in fase di sviluppo e lo sto facendo girare su un mio dominio per le opportune verifiche (www.buttibis.it).
Ho impostato un rewriter che ha fatto egregiamente il suo lavoro fino a quando ho integrato Authentication e Authorization (però non ho ancora iniziato a caricare utenti per fare ulteriori prove).
Il mio problema è quando provo ad accedere una pagina o una funzione che richiede autorizzazione, il sistema sembra che si impalli, poi mi reindirizza sull'indirizzo web "http://miodominio-it........". Tra l'altro ispezionando il sito non trovo i cookies ai-User e ai-Session che invece vedo sul server di sviluppo.
Ho provato ad integrare i cookies nella in startup.cs ho provato a impostare il redirect verso https, non so più dove sbattere la zucca...
Qualcuno saprebbe dare una dritta ad un dummie?
Questo è una parte del codice
services.Configure<CookiePolicyOptions>(options =>
            {
                options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.Strict;
                options.Secure = CookieSecurePolicy.Always;
                options.HttpOnly = Microsoft.AspNetCore.CookiePolicy.HttpOnlyPolicy.Always;
                options.ConsentCookie.Domain = "buttibis-it.securesslhosting.it";
            });
            services.ConfigureApplicationCookie(options =>
            {
                options.Cookie.SameSite = SameSiteMode.Strict;
                options.Cookie.HttpOnly = true;
                options.Cookie.Domain = "buttibis-it.securesslhosting.it";
                options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
                options.LoginPath = new PathString("/Identity/Account/Login");
                options.LogoutPath = new PathString("/Identity/Account/Logout");
                options.AccessDeniedPath = new PathString("/Identity/Account/Login");
            });

questa è l'altra parte...

Il Consent funziona correttamente, mentre il redirect mi si pianta su http....
 if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseHsts();
            }
            app.UseHttpsRedirection();
            app.UseRewriter(new RewriteOptions().Add(new RedirectWwwRule()));

            app.UseStaticFiles();
            app.UseCookiePolicy();

Questo è il rewrite:
public class RedirectWwwRule : IRule
    {
        public int StatusCode { get; } = (int)HttpStatusCode.MovedPermanently;
        public bool ExcludeLocalhost { get; set; } = true;

        public void ApplyRule(RewriteContext context)
        {
            var request = context.HttpContext.Request;
            var host = request.Host;
            if (host.Host.Contains("securesslhosting", StringComparison.OrdinalIgnoreCase))
            {
                //context.Result = RuleResult.ContinueRules;
                //return;
            }

            if (ExcludeLocalhost && string.Equals(host.Host, "localhost", StringComparison.OrdinalIgnoreCase))
            {
                context.Result = RuleResult.ContinueRules;
                return;
            }

            //string newPath = request.Scheme + "://www." + host.Value + request.PathBase + request.Path + request.QueryString;
            string newPath = request.Scheme + "://buttibis-it.securesslhosting.it" + request.PathBase + request.Path + request.QueryString;
            var response = context.HttpContext.Response;
            response.StatusCode = StatusCode;
            response.Headers[HeaderNames.Location] = newPath;
            context.Result = RuleResult.EndResponse; // Do not continue processing the request
        }
    }


PS: abbiate pietà, ma sono un principiante e, ovviamente il sito è ancora in fase embrionale...
Grazie

Valter
1 messaggio dal 29 novembre 2021
Non sono molto bravo a programmare, hai contattato il servizio clienti? Ho un problema con l'impostazione della sicurezza ajax. Li ho chiamati e sono venuti il giorno dopo e hanno risolto il problema. Quindi penso che dovresti fare la stessa cosa e non torturarti, perché potresti rendere le cose peggiori di quelle che sono ora.
5 messaggi dal 30 gennaio 2014
Dokker alla fine ho fatto così.
Il problema è che il rewriting che avevo creato faceva una chiamata passando da un altro server. Alla fine con il servizio clienti ho attivato un certificato (per fortuna per l'hosting windows adesso Register mette a disposizione un certificato gratuito, anche se limitato) ed ho risolto molto semplicemente rimuovendo il rewrite ed modificando leggermente il metodo Configure di Startup.cs in questo modo:
...
 RewriteOptions rewoptions = new RewriteOptions()
                .AddRedirectToHttpsPermanent()
                .AddRedirectToWwwPermanent();
            app.UseRewriter(rewoptions);
            app.UseStaticFiles();
            app.UseCookiePolicy();
...

Valter

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.