asp.net訪問網路路徑方法(類比使用者登入),asp.net使用者登入_PHP教程

來源:互聯網
上載者:User

asp.net訪問網路路徑方法(類比使用者登入),asp.net使用者登入


核心代碼:

public class IdentityScope : IDisposable{    // obtains user token    [DllImport("advapi32.dll", SetLastError = true)]    static extern bool LogonUser(string pszUsername, string pszDomain, string pszPassword,int dwLogonType, int dwLogonProvider, ref IntPtr phToken);    // closes open handes returned by LogonUser    [DllImport("kernel32.dll", CharSet = CharSet.Auto)]    extern static bool CloseHandle(IntPtr handle);    [DllImport("Advapi32.DLL")]    static extern bool ImpersonateLoggedOnUser(IntPtr hToken);    [DllImport("Advapi32.DLL")]    static extern bool RevertToSelf();    const int LOGON32_PROVIDER_DEFAULT = 0;    const int LOGON32_LOGON_NEWCREDENTIALS = 9;//域ò控?中D的?需è要a用?:Interactive = 2    private bool disposed;    ///     /// 登?錄?    ///     /// 用?戶§名?    /// 域ò名?,?如?果?不?在ú域ò中D就í使1用?機ú器÷IP地?址·    /// 密ü碼?    public IdentityScope(string sUsername, string sDomain, string sPassword)    {      // initialize tokens      IntPtr pExistingTokenHandle = new IntPtr(0);      IntPtr pDuplicateTokenHandle = new IntPtr(0);      try      {        // get handle to token        bool bImpersonated = LogonUser(sUsername, sDomain, sPassword,LOGON32_LOGON_NEWCREDENTIALS, LOGON32_PROVIDER_DEFAULT, ref pExistingTokenHandle);        if (true == bImpersonated)        {          if (!ImpersonateLoggedOnUser(pExistingTokenHandle))          {            int nErrorCode = Marshal.GetLastWin32Error();            throw new Exception("ImpersonateLoggedOnUser error;Code=" + nErrorCode);          }        }        else        {          int nErrorCode = Marshal.GetLastWin32Error();          throw new Exception("LogonUser error;Code=" + nErrorCode);        }      }      finally      {        // close handle(s)        if (pExistingTokenHandle != IntPtr.Zero)          CloseHandle(pExistingTokenHandle);        if (pDuplicateTokenHandle != IntPtr.Zero)          CloseHandle(pDuplicateTokenHandle);      }    }    protected virtual void Dispose(bool disposing)    {      if (!disposed)      {        RevertToSelf();        disposed = true;      }    }    public void Dispose()    {      Dispose(true);    }  }

第二個參數是網域名稱,有網域名稱的話寫網域名稱,沒有網域名稱寫目標機器的IP就可以了

using (IdentityScope c = new IdentityScope("administrator", "192.168.0.1", "11111")){ string[] filelist = System.IO.Directory.GetDirectories(@"\\192.168.0.1\folderName");}

aspnet的類比使用者登入問題

在web.config裡配置一下就可以了

 

aspnet相關,使用者已登入,怎防止通過複製某功可以頁路徑的方式,訪問他沒有許可權訪問的頁面,我使用了母片

你可以試試製作一個表,儲存頁面名稱,一個儲存使用者,然後另外一個關係表,頁面編號和使用者編號
 

http://www.bkjia.com/PHPjc/865253.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/865253.htmlTechArticleasp.net訪問網路路徑方法(類比使用者登入),asp.net使用者登入 核心代碼: public class IdentityScope : IDisposable{ // obtains user token [DllImport("advapi32.dll",...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.