Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Accesso ad un file remoto

    Ho un problema.
    Ho creato una semplice applicazione in asp.net utilizzando vb che legge un particolare file di testo e lo visualizza sul browser.
    Finchè il file si trovava in locale tutto andava bene.
    La questione è che il file da esaminare si trova su un altro pc della stessa intranet. Questo pc remoto (diverso da quello in cui è installato il server) è protetto da username e password di windows.
    Lanciando la pagina .aspx mi trovo con un errore di accesso perchè non si ha l'autorizzazione.

    Come devo fare affinchè la mia pagina possa leggere questo file che si trova in un altro pc?

    Grazie

  2. #2
    Con l'aiuto di alcuni pezzi di codice trovati in giro avevo sviluppato una classe apposita in C# che si interfacciava ad alcune DLL di sistema:
    codice:
    using System;
    using System.Web;
    using System.IO;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Drawing.Printing;
    using System.Security.Principal;
    using System.Runtime.InteropServices;
    
    
    public class NetLogon
    {
    
        public static bool Login(string domain, string username, string password)
        {
            bool r = false;
            IntPtr token;
            bool result = LogonUser(
                    username, domain,
                    password,
                    LogonTypes.Interactive,
                    LogonProviders.Default,
                    out token
                );
            if (result)
            {
                ImpersonateLoggedOnUser(token);
                CloseHandle(token);
                r = true;
            }
            return r;
        }
    
        [DllImport("advapi32.dll", SetLastError = true)]
        static extern bool LogonUser(
            string principal,
            string authority,
            string password,
            LogonTypes logonType,
            LogonProviders logonProvider,
            out IntPtr token);
    
        [DllImport("advapi32.dll", SetLastError = true)]
        static extern bool ImpersonateLoggedOnUser(IntPtr handle);
    
        [DllImport("kernel32.dll", SetLastError = true)]
        static extern bool CloseHandle(IntPtr handle);
    
        enum LogonTypes : uint
        {
            Interactive = 2,
            Network,
            Batch,
            Service,
            NetworkCleartext = 8,
            NewCredentials
        }
    
        enum LogonProviders : uint
        {
            Default = 0,
            WinNT35,     
            WinNT40,     
            WinNT50      
        }
    }
    Compilando la classe (se c'è qualche buon'anima che la traduce in VB...) puoi utilizzare il metodo Login in questo modo:
    codice:
    if ( NetLogon.Login("DOMINIO", "Pippo", "Pluto") ) {
    .... // si è loggato in rete, ora faccio quel che devo fare
    }
    Fammi sapere se funzica

    Ps. così dovrebbe funzionare solo utilizzando pagine ASPX, per applicazioni è necessario fare alcune mod.

  3. #3
    Ti ringrazio. Gentilissimo.
    Il problema è che, però, non sono pratico con c#.
    Vedrò come fare...
    Penso comunque che si possa risolvere con il settaggio del file web.config e/o di settings.config.
    Che mi dite?

    Thanks

  4. #4
    Nessun'altra soluzione disponibile?...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.