问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

asp.net如何访问远程目录并且读取目录下所有文件

发布网友 发布时间:2022-04-27 11:57

我来回答

2个回答

懂视网 时间:2022-04-27 16:19

本文以实例讲述了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(); 
 } 
}

热心网友 时间:2022-04-27 13:27

首先你要访问权限才行!然后就可以IO流读取啦
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
中国人发源于哪里 "中国人"这个名字的由来 微博关注取消会被发现吗? ...守护甜心》等……带点魔法的变身动画片!拜托!!! 跪求:位,字节,字,双字的解释,和关系。最好举例说明例如:VD100_百度知... 电脑的工作原理?为什么数据可以记录信息(如图片) 新风为什么要保温 新风系统为什么要保温 几年的教师资格转事业编制 ay89s51单片机可以用串口下载程序吗? 手机贴高清膜更清晰还是不贴膜更清晰 磨损的手机屏幕手机贴膜屏幕是不是会变清晰一点 有没有电脑屏幕贴膜后,肉眼看无变化,手机拍照会拍不清楚的膜? 手机的贴膜划得看不清了,本来想换一个,可揭下来发现不手机屏幕弄坏了后 如何让局域网用户访问我的ASP.NET网站? 怎么解除与QQ号的绑定呢? 怎样解除qq音乐上已邦定的?更换别的号? 怎样解除扣扣音乐绑定的?请赐教。 开立银行对公帐户需要什么资料? 到银行开对公户需要什么资料 五行缺土的颜色 五行缺土应挂什么书法作品 17岁男生如何增高 17岁后如何增高 17岁如何增高? 17岁如何科学增高? 17岁如何增高 我的电脑是WIN7联想G470笔记本,我想把颜色调深一点。怎么调显示器颜色? 联想笔记本固定颜色,色彩怎么统一?就是我想设置固定的颜色显示,在任何电脑和手机屏幕颜色显示都是一样 笔记本外接显示器怎么连接?用什么线?显示器还要不要自己插电源啊? 风力作用 风的作用让地球形成什么? 是什么对形成吴道子的画风起了重要作用? 水和风起到了怎样的作用 《人类百位名人排座次》里面是哪一百位名人? 改变世界的前一百名名人都有谁? 中国有多少名人 世界百位历史名人 世界百位名人录有哪些? 影响世界的100位名人 2021年十月二十六属兔运势 怎么样去除烤箱上玻璃的污渍 最近这段时间宅在家,没事就爱用烤箱做点好吃的,但是每次清洁烤箱时总是格外头疼? 苹果6,6s,se和三星s7,s7edge那个性价比高? iphone se和s7哪个更值得入手 s7和苹果se哪个强大 se合适还是6s还是s7合适 苹果SE和三星S7+,买哪个好 三星s7和iPhoneSE哪个比较好? 房贷政策调整,利率下调20个基点,传递了哪些信号?