322 messaggi dal 05 agosto 2005
Salve Ragazzi,

Ho appena pubblicato una nuovo sito (web application) in un IIS Server 7.0 che si collega at un DB SQL in un altro server.

Se apro il sito nel server non mi da problemi, ma non appena provo ad aprire il sito da remoto ricevo quest'errore:

Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.

Sfortunatamente l'accesso al DB e' fatto tramite Windows Authentication basata su gruppo di Active Directory. Di conseguenza non posso inserire le ceredentials di accesso al DB nella stringa di connessione inserita nel web.config.

Ho letto ll'articolo relativo al The Dreaded Double-hop dilemma and it’s dynamic destroyer, Kerberos https://kb4sp.wordpress.com/2007/07/16/the-dreaded-double-hop-dilemma-and-its-dynamic-destroyer-kerberos/ ma non danno soluzioni.


Il sito in IIS ha Authentication: ASP.NET e Windows Authentication abilitate. Windows authentication ha abilitato il Kernel-model authentication.

Grazie

Marco
11.512 messaggi dal 09 febbraio 2002
Contributi
Ciao Marco,
chiarisci cosa intendi con "remoto".

ma non appena provo ad aprire il sito da remoto ricevo quest'errore:


Il PC "remoto" è unito al dominio Active Directory? Oppure è il PC di casa? Hai fatto il login a questo PC usando le credenziali dell'utente di dominio? Che browser usi?

ciao,
Moreno

Enjoy learning and just keep making
322 messaggi dal 05 agosto 2005
Ciao Moreno,

Per PC remoto intendo un PC all'interno del dominio Active Directory.
Le credenziali di login al dominio sono le mie. Sotto il mio web.config:

<?xml version="1.0"?>
<configuration>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<handlers>
<remove name="ChartImageHandler"/>
<add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST" path="ChartImg.axd"
type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</handlers>
</system.webServer>
<connectionStrings>
<add name="CS_611_QA_BRR" connectionString="Data Source=XXXXXXXX\YYYYYYY;Initial Catalog=611_QA_BRR;Integrated Security=True" providerName="System.Data.SqlClient"/>

</connectionStrings>
<system.web>

<identity impersonate="true"/>

<httpHandlers>
<add path="ChartImg.axd" verb="GET,HEAD,POST"
type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
validate="false"/>
</httpHandlers>
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting"
assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</controls>
</pages>
<compilation debug="true" strict="false" explicit="true">
<assemblies>
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
</compilation>
<customErrors mode="Off" />
</system.web>
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None"/>
<add key="ChartImageHandler" value="storage=memory;deleteAfterServicing=true;"/>
</appSettings>
<system.webServer>
<security>
<authorization>
<remove users="*" roles="" verbs="" />
<add accessType="Allow" roles="PIPPOPLUTO\APP-BEXTeam" />
<add accessType="Allow" roles="PIPPOPLUTO\APP-IE-AdminTeam" />
<add accessType="Allow" roles="PIPPOPLUTO\APP-IE-QATeam" />
<add accessType="Allow" roles="PIPPOPLUTO\APP-IE-ProdTeam" />
</authorization>
</security>

</system.webServer>

</configuration>
11.512 messaggi dal 09 febbraio 2002
Contributi
Ciao Marco,
può darsi che il processo di ASP.NET non stia impersonando l'utente che invia la richiesta.
Nell'articolo che hai citato c'è scritto:

That's why you need to allow the service accounts of the web application to impersonate the user's account that is currently logged into it.


E tu questo l'hai fatto nel web.config con:

<identity impersonate="true"/>

Però non vedo l'elemento <authentication mode="Windows">

Fai una cosa... ripercorri accuratamente tutte le istruzioni che trovi elencate qui:
https://support.microsoft.com/it-it/help/810572/how-to-configure-an-asp-net-application-for-a-delegation-scenario

Inoltre dovresti verificare che il tuo browser sia facendo il passthrough delle credenziali. Cioè: è inutile essersi loggati al PC Windows con un account di dominio se poi il browser non inoltra la tua identità all'applicazione web. Nell'articolo che ti ho linkato c'è anche scritto come configurare Internet Explorer in modo che inoltri la tua identità. Per il momento prova con Internet Explorer.
Puoi verificare se la tua identità viene inoltrata creando una nuova pagina aspx e farle stampare il nome dell'utente. Leggi qui, trovi vari modi di ottenere il nome e di verificare se l'impersonate sta funzionando.
https://stackoverflow.com/questions/19676312/how-to-get-user-name-using-windows-authentication-in-asp-net

ciao,
Moreno
Modificato da BrightSoul il 04 maggio 2019 13:46 -

Enjoy learning and just keep making
322 messaggi dal 05 agosto 2005
Ciao Moreano,

Ho seguito l'alticolo step by step ma il problema persiste.

Ho modificato il web.config cosi:

<connectionStrings>
<add name="CS_611_QA_BRR" connectionString="Data Source=XXXXXXP\YYYYYY;Initial Catalog=611_QA_BRR;Integrated Security=True;Network=dbmssocn " providerName="System.Data.SqlClient"/>

</connectionStrings>
<system.web>

<authorization>
<allow users="*" />
<deny users="?" />
</authorization>

<authentication mode="Windows" />
<identity impersonate="true"/>




Ho modificato le Authentication del site in IIS, lasciano solo "ASP.NET Impersonation" e "Windows Authentication" abilitate.

Ho creato una pagina per visualizzare le credenziali, utilizzando "Scenario 4: Windows Authentication in IIS, impersonation on"

HttpContext.Current.Request.LogonUserIdentity.Name MYDOMAIN\USER1
HttpContext.Current.Request.IsAuthenticated True
HttpContext.Current.User.Identity.Name MYDOMAIN\USER1
System.Environment.UserName USER1
Security.Principal.WindowsIdentity.GetCurrent().Name MYDOMAIN\USER1

E le credenziali sono corrette.
Il site viene visualizzato correttemente, ma non appena mi sposto su una pagina dove viene utilizzata la connection string, continuo ad ottenere il solito errore:



Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.


Il nostro system administrator dice che e' un problema di account. Ho richiesto un Active Directory service account per authenticare l'accesso del server IIS sul SQL DB. Ti aggiorno su ulteriori evoluzioni.

Speriamo funzioni :-(

Grazie ancora.

Marco
11.512 messaggi dal 09 febbraio 2002
Contributi
Ciao Marco,


Ho creato una pagina per visualizzare le credenziali, utilizzando "Scenario 4: Windows Authentication in IIS, impersonation on"
E le credenziali sono corrette.

Ok, bene, hai verificato che l'identità arriva correttamente all'applicazione web.

A questo punto il problema sarà lato database server? Non saprei... controlla giusto che nella tua connection string ci sia Integrated Securirity=true.
https://stackoverflow.com/questions/1229691/what-is-the-difference-between-integrated-security-true-and-integrated-securit
Eventualmente posta la tua connection string, ovviamente rimuovendo le informazioni sensibili.


Il nostro system administrator dice che e' un problema di account.

Ok, fammi sapere se riuscite a risolvere.

ciao,
Moreno

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.