AIUTATEMI

venerdì 21 settembre 2007 - 11.21

toniovigi Profilo | Expert

Impossibile generare un istanza utente di SQL Servere a causa di un problema nel recupero del percorso dei dati delle applicazioni locali dell'utente. Verificare che nel computer dell'utente sia disponibile un profilo utente locale . La connessione verrà chiusa

Questo e l'errore che m da la mia pagina web quando io clikkando su un controllo login,invece d accedere alla pagina che deve vedersi dopo il login (ovviamente il login fa un controllo sll utente create tramite Configurazione guidata Asp net)

grazieeeeeeeeeeeeeeeeee

franco_rh Profilo | Junior Member

Scusa ma non ho capito: il sito è già pubblicato sul server o lo esegui su localhost?
MarijCat

toniovigi Profilo | Expert

m da questo errore quando lo eseuguo sl server,con visual web developer durante il debug va tutto,quando poi tiro su il sito bho...AIUTAMIIIIIIIIIIIIIII

franco_rh Profilo | Junior Member

Nell'esposizione del tuo problema ci sono molti punti oscuri però inizio ad ipotizzare così risparmiamo tempo, poi eventulmente posti ulteriori spiegazioni, tipo su che server hai fatto hosting e magari il trace dell'errore.
Ipotizzando che sei su server tipo aruba ti comunico che i controlli di VisualStudio tipo LOGIN, LOGINVIEW ecc. non funzionano semplicemente trasferendo il sito sul server. Questi controlli interagiscono con un database SQL che viene generato automaticamente quando lanci l'applicazione e fai il login per la prima volta in stand-alone (su localhost in pratica). Se ci fai caso infatti in esplora risorse di visaul studio ti compare un db SQL.
Il problema è che il server (es. aruba) non permette al db così creato di ricevere chiamate da remoto (per sicurezza dicono loro).
L'alternativa è:
- aggiungere il db SQL al dominio (quindi pagare tot euro ogni tot megayte) così che il provider ti fornirà l'indirizzo IP del database che dovrai includere nella stringa di connessione nel web.config e quindi impostare una connessione in remoto al database SQL server, dopodichè potrai utilizzare i controlli LOGIN di VS.
- utilizzare un provider diverso da SQL, tipo ACCESS, di conseguenza reimpostare il provider (è un processo un pò macchinoso)
- tagliare la testa al toro e crearti cotrolli di login personalizzati magari basati sempre su access o su XML.

Spero di aver centrato il problema in base alle poche informazioni che ho potuto apprendere. Altrimenti dammi qualche dettaglio in più.
Ciao.
MarijCat

toniovigi Profilo | Expert

ciao..la cosa che hai detto sul provider forse e quella giusta..ma non saprei come fare!!

Io pubblico il mio sito su IIS installato su un pc tt qua..la gente si collega li....e il sito gira su una lan..semplice semplice..
Il punto è che il login era andato...ma poi bho..nn so kosa cavolo e successo.
Cmq e vero ogni volta nel debug mi si viene a creare nella cartella del sito App-Data un file di database dove li si memorizzeranno le info sul login...
Xo ripeto..quando pubblico su IIS..nulla a pagamento..tt qua in locale diciamo..m da quell'errore citato nel post precedente..t prego aiutami a risovlereeeeeeeeeeeeeeeeeeeeeeeeeeeeee


!!!!!!

grazieeeeeeee

tony

franco_rh Profilo | Junior Member

Allora è tutto da rifare!!!
Non il sito attenzione!
In pratica hai un computer che fa da server su cui gira l'applicazione web, gli altri, in rete locale devono connettersi al tuo server per visualizzare il sito web.
Da quanto ho capito, facendo il login da computer remoto non ti viene riconosciuto l'utente.
Se è così il primo passo è configurare il file web.config in base a come hai strutturato il sito.
Apri il file web.config e modifica la seguente linea:
<authentication mode="Windows" />
con
<authentication mode="Forms" />

In questo modo l'autenticazione viene fatta in base all'autenticazione di password ed username e non alle credenziali della macchina.
Si simula in pratica un web server, poichè penso che in questo modo hai impostato il sito.
Poi evidentemente avrai già nel database i vari utenti con le varie credenziali (user, password, roles) da poter confrontare giusto?
Altrimenti guarda qui: http://msdn2.microsoft.com/it-it/library/6hy1xzbw(VS.80).aspx
(seleziona e incolla in barra di navigazione perchè non viene visualizzato correttamente il link)

Se non risolvi mi sarebbe cosa gradita se mi allegassi il web.config al prossimo post e mi indicassi lo schema di connessione delle macchine collegate tra loro e mi scrivessi la root precisa in cui hai inserito il sito web (es. C:\Inetpub\wwwroot\...)
MarijCat

toniovigi Profilo | Expert

ciao ho controllato il web config ed e tutto giusto...l'errore che mi da e il seguente:

Impossibile generare un'istanza utente di SQL Server a causa di un problema nel recupero del percorso dei dati delle applicazioni locali dell'utente. Verificare che nel computer dell'utente sia disponibile un profilo utente locale. La connessione verr chiusa.

faccio notare che l'applicazione con il debug in visaul web dev funziona tutto ok,quando poi la metto sulla mia directory di pullicazione

C:\inetpub\wwwroot\servizi(che e il nome) bho mi da quel'errore

AIUTOOOOOOOOOO sn a disposioneeeeeeeee

franco_rh Profilo | Junior Member

Prova queste due soluzioni:
in visual studio nella barra dei menu clicca Sito Web->Configurazione di Asp.Net
Nella pagina di configurazione vai alla scheda Protezione e sotto Utenti vai a Seleziona tipo di autenticazione e scegli Accesso da rete locale.
Poi sempre nella scheda Protezione sotto Ruoli crei un ruolo Administrators ed uno Users.
Poi puoi creare le regole di accesso per ogni utente. (consentire o negare l'accesso a file o cartelle dipendentemente dal ruolo o dall'identità)

A questo punto devi configurare IIS:
START->Strumenti di amministrazione->Internet Information Services. (Se nel menù start non visualizzi Strumenti di amministrazione clicca con il tasto destro e apri le proprietà del menù start, vai a Personalizza, seleziona la scheda Avanzate, scorri la finestra fino in fondo e seleziona: visualizza strumenti di amministrazione nel Menu tutti i programmi e nel menù di avvio).
Ora in IIS nel treeview a destra espandi il nodo con il nome del computer, il nodo Siti web, il nodo Sito web predefinito. Sotto quest'ultimo nodo si dovrebbe visualizzare la cartella del tuo sito.
Seleziona Sito web predefinito, clicca con il tasto destro e scegli Nuovo->Directory virtuale.
Parte la procedura guidata, scegli l'alias, cioè il nome del sito e prosegui. Nella schermata successiva scegli la directory fisica della prima pagina es. c:\inetpub\wwwroot\nomesito\default.aspx.
Ora seleziona tutti i diritti abilitati sul sito. termina la procedura guidata.
Dal computer remoto digita il dns oppure l'indirizzo IP del Server su cui risiede il sito e il nome del sito es. DNS: \\nomepc\miosito\, IP:\\128.0.0.9\miosito\

Fammi sapere.
p.s.
iis5 vede solo pagine con estensione .asp o .html, quindi per aprire la pagina devi digitare l'indirizzo completo es. \\128.0.0.9\miosito\default.aspx affinchè venga visualizzata. Da iis6 in poi puoi digitare anche solo \\128.0.0.9\miosito\

MarijCat

toniovigi Profilo | Expert

ok adesso proverò subito...speriamo di risolvere...t faccio sapere

franco_rh Profilo | Junior Member

Puntualizzazione:
mi sono accorto che è possibile modificare il comportamento di iis5 in relazione alle pagine .aspx in questo modo:
-apri Internet Information Services da START->Strumenti di amministrazione.
-Estendi il nodo Sito web predefinito, seleziona la cartella del tuo sito e clicca con il tasto destro. Dal menu popup seleziona Proprietà
-Selezioa la scheda documenti. Se non c'è la spunta seleziona Abilita documento predefinito.
-Clicca su Aggiungi... e nella textbox del prompt inserisci il nome del file della pagina iniziale es. Default.aspx o Index.aspx ecc.
-Quando il file è stato aggiunto alla listview selezionalo e spostalo in alto usando i tasti freccia posti accanto alla listview.
In questo modo puoi chiamare l'ndirizzo sempre senza specificare anche la pagina.
MarijCat

toniovigi Profilo | Expert

Nella pagina di configurazione vai alla scheda Protezione e sotto Utenti vai a Seleziona tipo di autenticazione e scegli Accesso da rete locale.
Poi sempre nella scheda Protezione sotto Ruoli crei un ruolo Administrators ed uno Users.
Poi puoi creare le regole di accesso per ogni utente. (consentire o negare l'accesso a file o cartelle dipendentemente dal ruolo o dall'identità)

qst e qll k m hai scritto..domanda:
..ma sei io metto accesso da rete locale da dove li seleziono gli utenti per poi dare i permessi???

la mia pagina d login nn e all'inizio del sito, cè un tastino k dice Login io lo clikko e da li m apre la pagina..quindi il documento predefinito centra poko


franco_rh Profilo | Junior Member

>..ma sei io metto accesso da rete locale da dove li seleziono gli utenti per poi dare i permessi???

Puoi inserirli nel web.config in questo modo:
sotto il ramo <system.web> metti:
<authentication>
<forms>
<credentials>
<user name="franco" password="cercatela" />
</credentials>
</forms>
</authentication>
e tanti <user/> quanti utenti vuoi creare.

Comunque puoi risolvere definitivamente in questo modo:
Ammesso che il nome del dominio sia quello di default, cioè 'WORKGROUP' metti nel web.config , sempre sotto il ramo <system.web>:
<authorization>
<allow users="?" />
</authorization>
<anonymousIdentification domain="WORKGROUP" />

Questo ti permetterà di confiurare il sito in modo che si posa visualizzare la pagina da remoto. Ma tieni presente che non ci sarà nessuna restrizione di sicurezza se non la username+password.




MarijCat

toniovigi Profilo | Expert

ciao alla fine ho adottato un altra soluzione:

ho messo come accesso, accesso da rete locale e ho messo le mie pagine protette in una cartella chiamata ADMIN,
dopodiche sono andato sulle proprietà della cartella e ho permesso solo a determinati utenti ( della mia LAN) il controllo completo, e a Everyone, cioe tutto il resto ho negato.

Successivamente su IIS, sono andato su quella cartella e dalle proprietà ho selezionato protezione directory e da li Utilizza Autenticazione Integrata di Windows

Adesso qnd s tenta d accedere alla cartella mi esce la schermatina di windows dove mi chiene nome utente password e dominio e solo a chi ho dato i permessi funziona..altrimenti m dice accesso negato.

Direi che lascio cosi anche se volevo usare il metodo Form che xo m da errore..m dici che manca sto fatidico profilo Locale..DHo..gia k c sn t faccio un altra domanda ..io devo stampare una gridview..semplicemente un bottone k qnd lo clikko m stampa la gridview tt qua..km posso fare???

grazieeeeeeeeeeee

franco_rh Profilo | Junior Member

Prova il metodo che ti ho appena postato, funziona al 100x100 e non ti da i problemi che mi hai appena descritto.
Devi solo aggiungere l'ultima parte di codice, lasciando perdere ruoli e users ecc.
Solo questo:
sotto il ramo <system.web>:
<authorization>
<allow users="?" />
</authorization>
<anonymousIdentification domain="WORKGROUP" />

E' la soluzione più semplice e pulita e non devi configurare nemmeno iis.

MarijCat

toniovigi Profilo | Expert

hhahah senza parole...funziona..grazie...m vorrei sdebitare ma nn so komeeeeee!!

x la stampa??

franco_rh Profilo | Junior Member

Accettndo la risposta sul forum
MarijCat

toniovigi Profilo | Expert

fatto..x la stampa gridview??

franco_rh Profilo | Junior Member

scusa cosa intendi 'x la stampa'?
MarijCat

toniovigi Profilo | Expert

ops..scusa !!...intendo stampare kn la stampante!:p

franco_rh Profilo | Junior Member

Vuoi stampare dalla stampante condivisa in rete o vuoi stampare la pagina web?
MarijCat

toniovigi Profilo | Expert

no voglio stampare dalla mia stampante locale...una gridview k visualizzo..tt qua...

franco_rh Profilo | Junior Member

Immagino che tu voglia usare una stampante che si trova sul computer server per stampare dal computer client. Per farlo occorre installare una stampante condivisa:
-Dal menù di avvio apri 'Stampanti e fax'
-Avvia procedura guidata 'Aggiungi stampante'
-Seleziona dal wizard 'Stampante in rete o collegata ad un altro computer'
-Qui la procedura è un pò problematica: accertati che sul server, quando hai fatto la connessione LAN, la stampante sia 'condivisa' per impostazione.
Prova prima l'opzione 'Connetti alla stampante. Per cercarne una in rete' (lascia il TextBox vuoto). Nella successiva schermata seleziona il gruppo di lavoro e immetti il nome della stampante COME VIENE IDENTIFICATA DAL SERVER. Se non funziona scegli l'ultima opzione dando la directory precisa della stampante. Tieni pronto il disco driver perchè è facile che te lo chieda.
MarijCat

toniovigi Profilo | Expert

ho gia tutto configurato..m serve il codice x dirgli.."stampa la gridview"

franco_rh Profilo | Junior Member

incolla questo nella pagina:
<input id="Button2" type="button" value="button" onclick ="this.style.display='none';window.print()"/>
Usa il bottone HTML come sopra e non bottoni ASP per ragioni che non sto qui a spiegarti (fidati )

Questo ti stampa l'intera pagina web ad eccezione del pulsante 'stampa'.
Se vuoi stampare solo ed ESCLUSIVAMENTE la gridview il sistema più semplice è invece creare un'altra pagina che contenga solo la gridview con i dati e inserire nella pagina precedente (quella intera) un linkButton con scritto 'Stampa'. Poi nella seconda pagina, quella con solo la gridview fai così:
-aggiungi il seguente codice nell'head:
<script type ="text/ecmascript" >
function go(){window.print();}
</script>
-il tag 'body' lo scrivi così:
<body ... onload ="go()"> (i puntini non scriverli, indicano altre proprietà eventuali del tag)

In questo modo appena si carica la seconda pagina esce subito la form di stampa...

Se poi hai una versione avanzata di VS2005 puoi anche prendere familiarità con i CrYstal Reports

p.s.
la prossima volta che posti, in armonia con le regole del forum, sarebbe bene porre ogni singolo quesito in un thread a parte
MarijCat
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5