最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

asp.net实现访问局域网共享目录下文件的解决方法

来源:动视网 责编:小采 时间:2020-11-27 22:38:53
文档

asp.net实现访问局域网共享目录下文件的解决方法

asp.net实现访问局域网共享目录下文件的解决方法:本文以实例讲述了asp.net实现访问局域网共享目录下文件的解决方法,完整代码如下所示: using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using Sys
推荐度:
导读asp.net实现访问局域网共享目录下文件的解决方法:本文以实例讲述了asp.net实现访问局域网共享目录下文件的解决方法,完整代码如下所示: using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using Sys

本文以实例讲述了asp.net实现访问局域网共享目录下文件的解决方法,完整代码如下所示:

using System; 
using System.Collections; 
using System.Configuration; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Xml.Linq; 
using System.IO; 
using System.Security.Principal; 
using System.Runtime.InteropServices; 
public partial class _Default : System.Web.UI.Page 
{ 
 public const int LOGON32_LOGON_INTERACTIVE = 2; 
 public const int LOGON32_PROVIDER_DEFAULT = 0; 
 WindowsImpersonationContext impersonationContext; 
 [DllImport("advapi32.dll")] 
 public static extern int LogonUserA(String lpszUserName, 
 String lpszDomain, 
 String lpszPassword, 
 int dwLogonType, 
 int dwLogonProvider, 
 ref IntPtr phToken); 
 [DllImport("advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)] 
 public static extern int DuplicateToken(IntPtr hToken, 
 int impersonationLevel, 
 ref IntPtr hNewToken); 
 [DllImport("advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)] 
 public static extern bool RevertToSelf(); 
 [DllImport("kernel32.dll", CharSet = CharSet.Auto)] 
 public static extern bool CloseHandle(IntPtr handle); 
 public void Page_Load(Object s, EventArgs e) 
 { 
 if (impersonateValidUser("lucas", "Workgroup", "lcas")) 
 { 
 string path = @"//zhehui001/lu"; 
 foreach (string f in Directory.GetFiles(path)) 
 { 
 Response.Write(f); 
 } 
 undoImpersonation(); 
 } 
 else 
 { 
 //Your impersonation failed. Therefore, include a fail-safe mechanism here. 
 } 
 } 
 private bool impersonateValidUser(String userName, String domain, String password) 
 { 
 WindowsIdentity tempWindowsIdentity; 
 IntPtr token = IntPtr.Zero; 
 IntPtr tokenDuplicate = IntPtr.Zero; 
 if (RevertToSelf()) 
 { 
 if (LogonUserA(userName, domain, password, LOGON32_LOGON_INTERACTIVE, 
 LOGON32_PROVIDER_DEFAULT, ref token) != 0) 
 { 
 if (DuplicateToken(token, 2, ref tokenDuplicate) != 0) 
 { 
 tempWindowsIdentity = new WindowsIdentity(tokenDuplicate); 
 impersonationContext = tempWindowsIdentity.Impersonate(); 
 if (impersonationContext != null) 
 { 
 CloseHandle(token); 
 CloseHandle(tokenDuplicate); 
 return true; 
 } 
 } 
 } 
 } 
 if (token != IntPtr.Zero) 
 CloseHandle(token); 
 if (tokenDuplicate != IntPtr.Zero) 
 CloseHandle(tokenDuplicate); 
 return false; 
 } 
 private void undoImpersonation() 
 { 
 impersonationContext.Undo(); 
 } 
}

文档

asp.net实现访问局域网共享目录下文件的解决方法

asp.net实现访问局域网共享目录下文件的解决方法:本文以实例讲述了asp.net实现访问局域网共享目录下文件的解决方法,完整代码如下所示: using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using Sys
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top