【发布时间】:2014-09-16 14:41:57
【问题描述】:
我正在尝试为网站(在我的部门内部)建立一个注册部分。现在为了让新用户注册,我构建了一个表单,用户在其中输入他的员工 ID,即 AD 帐户名称,然后单击一个按钮来获取他的详细信息。稍后将其保存在注册请求排队的数据库中。一旦这些请求被管理员批准,那么只有这些用户可以使用该应用程序。现在的问题是用户未登录,因此未登录用户是否可以从 AD 服务器获取详细信息。如果是那么如何。?因为当我尝试下面列出的代码时,我在使用 FindOne 函数时遇到了错误的用户名或密码错误。
public string getProperties(string StaffCode, string property)
{
try
{
string result = "";
using (var de = new DirectoryEntry(_path))
using (var ds = new DirectorySearcher(de))
{
ds.Filter = string.Format("(sAMAccountName={0})", StaffCode);
ds.PropertiesToLoad.AddRange(new[] {
"sn", // last name
"givenName", // first name
"mail", // email
"telephoneNumber", // phone number
// etc - add other properties you need
});
var res = ds.FindOne();
if (res == null)
{
result = "noUserFound";
}
else
{
foreach (string propName in res.Properties.PropertyNames)
{
ResultPropertyValueCollection valueCollection = res.Properties[propName];
foreach (Object propertyValue in valueCollection)
{
if (propName == property)
{
result = propertyValue.ToString();
}
}
}
}
}
return result;
}
catch (Exception ex)
{
return "someErrorOccurred";
}
请帮我解决这个问题。
提前致谢
【问题讨论】:
标签: c# asp.net visual-studio-2010 active-directory