如何使用用户名和密码访问Active Directory上的用户文件夹
本文关键字:用户 Directory Active 文件夹 密码 何使用 访问 | 更新日期: 2023-09-27 18:10:34
我有一个系统,其中有一些用户注册为Active Directory用户。他们把他们的一些文件夹重定向到我们服务器上的一个目录。
在我的测试环境中,有2个用户User1
和User2
,他们的Documents
文件夹重定向到我的服务器。
-
User1
的文件夹位于''netapp'profiles'User1'Documents
-
User2
的文件夹位于''netapp'profiles'User2'Documents
下
下面是我的管理员提供给我的服务器结构。
-
。myDomain ->
DNS, DHCP, AD
-
开车。myDomain ->服务器我的web应用程序将运行在
-
W8User1。myDomain -> User1
-
W8User2。myDomain -> User2
我想做的是为他们提供从我将开发的web应用程序中查看他们的文件的能力。我对活动目录的东西很陌生,甚至不确定它是否可能。以下是我到目前为止写的。
using ( var context = new PrincipalContext(ContextType.Domain, "<myDomain>", "DriveAdmin@<myDomain>", "password") )
{
//Username and password for authentication.
if ( context.ValidateCredentials("User1@<myDomain>", "password") )
{
var de = new DirectoryEntry(@"LDAP://<myDomain>", "User1@<myDomain>", "password");
DirectorySearcher searcher = new DirectorySearcher(de);
var r1 = "";
foreach ( SearchResult s in searcher.FindAll() )
r1 += s.Path + "<br>";
var r2 = "";
foreach ( var d in Directory.GetDirectories(@"''netapp'profiles'User1") )
r2 += d + "<br>";
}
else /// unauthorized;
}
验证工作正常。
r1
给了我很多我不使用也不理解的记录。
LDAP://bilgiturk.depo/…废话废话……所以
我甚至不能得到r2
,因为你会猜它给出了Access Denied
异常。
是可行的吗?当我在网上搜索活动目录c#相关内容时,我只遇到了活动目录管理操作,比如添加用户创建组之类的。所以我开始觉得这是不可能的?
您可以从Active directory中读出用户名和他的主目录,但是您不能读取用户的密码,因此您不能冒充该用户访问他的主目录。
但是,您确实有两个选择:
-
如果您直接从他那里获得用户的凭据(用户名和密码),您可以冒充该用户,并且在该用户的上下文中,您应该能够获得他自己的主目录中所有文件和文件夹的列表(请参见Rick Strahl的博客文章中的一种方法)
-
如果您可以在具有(只读,读目录)访问所有用户主文件夹的特定帐户下运行web应用程序,您甚至可以避免进行模拟(但在这种情况下,您的ASP. js . js . html)。. NET应用程序的帐户需要扩展访问权限)