访问网络驱动器上的文件背景:我有一个应用程序必须从网络驱动器上的文件读取(Z?这在我的办公室域中很有用,但它在网站上不起作用(在不同的域中)。据我所知,域用户和网络驱动器的设置方式相同,但我无法访问客户域中的用户等。当我不能访问网络驱动器,我想我需要一个用户令牌。这就是我抑制用户的方式:[DllImport("advapi32.dll",SetLastError=true,CharSet=CharSet.Unicode)]publicstaticexternboolLogonUser(StringlpszUsername,StringlpszDomain,StringlpszPassword,intdwLogonType,intdwLogonProvider,refIntPtrphToken);…常量字符串用户名=“用户”;conststringpass="通过";conststringdomainName="VALIDDOMAIN.local"//尝试使用有效域名和null,结果相同constintLOGON32_PROVIDER_DEFAULT=0;constintLOGON32_LOGON_INTERACTIVE=2;IntPtrtokenHandle=newIntPtr(0);boolreturnValue=LogonUser(userName,domainName,pass,LOGON32_LOGON_INTERACTIVE,LOGON32_PROVIDER_DEFAULT,reftokenHandle);if(!returnValue)thrownewException("登录失败。");WindowsImpersonationContextimpersonatedUser=null;尝试{WindowsIdentitywid=newWindowsIdentity(tokenHandle);impersonatedUser=wid.Impersonate();}finally{if(impersonatedUser!=null)impersonatedUser.Undo();现在这是有趣/奇怪的部分在我的网络中,应用程序已经可以访问网络驱动器,如果我尝试模拟活动用户(完全相同的用户,包括相同的域),它将无法访问网络驱动器。这让我感到无助,因为现在我不知道什么有效,什么无效,更重要的是,它在网站上是否有效?我错过了什么?编辑:我最初问这个问题时忘了写这个:我尝试输入一个有效的域名但它没有用,所以之后我尝试输入null以获得与没有此代码时相同的用户名(因为它有效)默认情况下我们域中的案例)。这不起作用,这就是domain=null;结束了问题。一些想法:这听起来可能很愚蠢,但您是否正在尝试改变访问驱动器的方式?也许安装某种形式的虚拟处理程序,使您可以查看驱动器上的信息。例如SSH?以上就是《C#学习教程:访问网盘文件共享》的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权请点击右侧联系管理员删除。如需转载请注明出处:
