Utente ASPNET e sqlserver 2000

martedì 29 novembre 2005 - 15.37

Pongo Profilo | Senior Member

Ciao, ecco il mio problema:

sto sviluppando un applicativo .net che si attacca ad un db sqlserver 2000.

Quando mi connetto vengo connesso come utente PC\ASPNET.

Avendo creato degli utenti del dominio con diverse competente e accessi al DB, vorrei connettermi con quei login e invece non ci riesco.

Anche mettendo UID= nomeutente nella stringa di connessione, vengo sempre connesso come PC\ASPNET.


Il mio applicativo usa la form authentication.

Idee?

Grazie!

micto27 Profilo | Senior Member

Com'è la stringa di connessione?
Non è che stai utilizzando l'opzione Trusted Connection?

Ciao, Michele.

Pongo Profilo | Senior Member

this.connessioneDB.ConnectionString = "workstation id=XXXXXX;packet size=4096;integrated security=SSPI;data source=XXXXXX;persist security info=False;initial catalog=DB_Clienti";

E' questa!

Pongo Profilo | Senior Member

sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"

Pero nel web config ho trovato anche ste paroline che dicevi!

Devo toglierle?

Grazie!

micto27 Profilo | Senior Member

prova così:

this.connessioneDB.ConnectionString = "workstation id=XXXXXX;packet size=4096;data source=XXXXXX;persist security info=False;initial catalog=DB_Clienti";

(togliendo cioè integrated security=SSPI;)

Ciao, Michele



Pongo Profilo | Senior Member

Login failed for user 'dominio\utente'. Reason: Not associated with a trusted SQL Server connection.

E l'utente c'è nelle autorizzazioni di sql server 2000.

ho provato anche a mettere trusted connection=no nel web.config ma mi da lo stesso errore.


micto27 Profilo | Senior Member

this.connessioneDB.ConnectionString = "workstation id=XXXXXX;packet size=4096;data source=XXXXXX;persist security info=False;initial catalog=DB_Clienti;User ID=xxxxx;Password=yyyyyyyyy";

ma hai aggiunto User ID e Password nella connection string?

Ciao

Pongo Profilo | Senior Member

Ho insrito il nome utente e tolto la sicurezza, come mi avevi sonsigliato, ma il problema è che non riconosce l'utente.

Per l apassword nella stringa di connessione non so che metterci.

SQL server regola gli accessi in base all'autenticazione di windows.

Non è che debba mettere nel web.config windows authentication?
Ma in questo ultimo caso non perderei il form di login?

Non so dove sbattere la testa!

Pongo Profilo | Senior Member

E ho anche provato a inserire il mio nome windows e la mia password, tra parentesi sono dbo, ma non mi accetta e mi dice:

System.Data.SqlClient.SqlException: Login failed for user 'dominio\user'. Reason: Not associated with a trusted SQL Server connection.


micto27 Profilo | Senior Member

Se SQL Server è stato installato per accettare solo autenticazione Windows (e non Mixed Mode) non puoi usare user e password.

Puoi inserire l'utente PC\ASPNET in un gruppo di rete da mappare su SQL Server con un account di tipo Windows Authentication oppure mappare l'utente stesso.



Pongo Profilo | Senior Member

Mi era venuto sto dubbio!

Allora giro la domanda: faccio l'utente server01\aspnet che ha accesso a tutto il db, puo fare tutto. Poi limito i comandi da web, cioè se pippo non puo inserire dati, nella pagina di pippo non ci sarà modo di visualizzare comandi per l'inserimento di dati.

Il prblema è: se pippo è furbo può riuscire a leggere con altri programmi tabelle che non può visualizzare con comandi web.

Cioè se io ho una tabella con gli utenti e le password sono vulnerabili dall'esterno? Un utente può riuscire a connettersi al DB con lo UID server01\aspnet e fare interrogazioni sulle tabelle?

In teroia no, ma non si metterei la mano sul fuoco!

micto27 Profilo | Senior Member

In effetti qualsiasi applicazione girasse su quel server, associata all'utente ASPNET, potrebbe connettersi in Trusted Connection al tuo database.
Ora al di là di pensare di criptare i dati sulla tabella delle password potresti anche valutare l'idea di
- definire un utente Windows da dedicare alla tua applicazione
- mappare tale utente con un Account su SQL Server al quale configurare i permessi sul tuo database
- configurare l'applicazione Web (via web.config) in modo tale da farla girare con le credenziali di questo nuovo utente (impersonificazione: vedi Impersonate)

vedi un po' tu.

Ciao, Michele.

Pongo Profilo | Senior Member

Ho fatto un utente in sql server protetto da password, un utente che non esiste nel dominio windows e l'ho chiamato WebApp con password=password.

Ho provato a inserire il tag identity nel web config ma mi da un errore nel web config.

<identity impersonate ="true"
userName="AppWeb"
password="password"/>

Il tag è aperto e chiuso, dentro l tag system. Perchè mi da errore?

Ciao e grazie!

micto27 Profilo | Senior Member

Ma AppWeb / password sono credenziali Windows o di SQL Server?

Che errore ti viene restituito relativamente a Web.config?



Pongo Profilo | Senior Member

AppWeb/password sono user e passw di un utente creato da me in sql servere senza l'autenticazione windows.

Nel web.config non so rintracciare l'errore, mi dice solo che c'è un errore, ma non mi dice dove.

Ho provato a mettere trusted connection=no e compila. Solo poi non riesce a connettersi al DB!

Pongo Profilo | Senior Member

Comunque anche facendolo compilare, mettendo trusted connection=no, entra sempre con le credenziali aspnet.

Se tolgo i provilegi ad WebApp non cambia nulla, l'impostante è che non li tolga a ASPNET.

Madonna perchè è così complicato riuscire a connetteresi con un nome utente e una password?

micto27 Profilo | Senior Member

L'utente/password di impersonate devono essere credenziali Windows (non Sql Server).

L'errore riferito al web.config potrebbe proprio dipendere da questo: il sistema non riesce a validare le credenziali specificate in Impersonate.

Ciao

Pongo Profilo | Senior Member

Grazie!

Era prorpio quello! Adesso funziona.

Per la sicurezza cosa mi consigliate? Di creare un nuovo utente del dominio da usare solo per la connessione al db tramite l'impersonate del web.config?

Scrivere le password nel web config è sicuro? Dopo il file deve essere nella cartella contenete il sito o una volta compilate le ddl posso toglierlo e metterlo al sicuro?



micto27 Profilo | Senior Member

Il file web.config tevi mantenerlo, nelle dll va a finire la compilazione del codice vb.net o C#.

Circa la sicurezza: non credo tu abbia alternative a lasciare la password nel web.config. Non ho idea se tale password possa essere inserita criptata, prova ad approfondire.

Ciao.

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5