这是我的方法:
public bool UserExistsActiveDir()
{
try
{
const int ADS_UF_ACCOUNTDISABLE = 0x00000002;
DirectoryEntry de = new DirectoryEntry();
de.Path = "LDAP://domainname;
DirectorySearcher objADSearcher = new DirectorySearcher(de);
de.AuthenticationType = AuthenticationTypes.Secure;
objADSearcher.SearchRoot = de;
objADSearcher.Filter = "(SAMAccountName=" + txtUserName.Text + ")";
SearchResult results = objADSearcher.FindOne();
if (results.ToString() != "")
{
int flags = Convert.ToInt32(results.Properties["userAccountControl"][0].ToString());
//results.Properties["userAccountControl"][0].ToString().Equals("514");
if (Convert.ToBoolean(flags & ADS_UF_ACCOUNTDISABLE))
{
return false;
}
else
{
return true;
}
}
}
catch (Exception ex)
{
lblError.Text = ex.Message.ToString();
return false;
}
}
我哪里错了?它说缺少回报,但据我所知,我所有的回复陈述都在那里。
答案 0 :(得分:4)
您需要else
这个if
声明:
if (results.ToString() != "")
如果字符串不为空,会发生什么?您需要为该案例返回一个值。
答案 1 :(得分:1)
没有返回
if (results.ToString() == "")
答案 2 :(得分:0)
public bool UserExistsActiveDir()
{
try
{
const int ADS_UF_ACCOUNTDISABLE = 0x00000002;
DirectoryEntry de = new DirectoryEntry();
de.Path = "LDAP://domainname;
DirectorySearcher objADSearcher = new DirectorySearcher(de);
de.AuthenticationType = AuthenticationTypes.Secure;
objADSearcher.SearchRoot = de;
objADSearcher.Filter = "(SAMAccountName=" + txtUserName.Text + ")";
SearchResult results = objADSearcher.FindOne();
if (results.ToString() != "")
{
int flags = Convert.ToInt32(results.Properties["userAccountControl"][0].ToString());
//results.Properties["userAccountControl"][0].ToString().Equals("514");
if (Convert.ToBoolean(flags & ADS_UF_ACCOUNTDISABLE))
{
return false;
}
else
{
return true;
}
}
// <-here
}
catch (Exception ex)
{
lblError.Text = ex.Message.ToString();
return false;
}
}
答案 3 :(得分:0)
if (results.ToString() != "")
返回false
时没有返回值。
答案 4 :(得分:0)
您的所有回复都在此if语句中:
if (results.ToString() != "")
{
int flags =
Convert.ToInt32(results.Properties["userAccountControl"][0].ToString());
//results.Properties["userAccountControl"][0].ToString().Equals("514");
if (Convert.ToBoolean(flags & ADS_UF_ACCOUNTDISABLE))
{
return false;
}
else
{
return true;
}
}
但如果results.ToString()
是“”,那就是什么......没有回报价值。
答案 5 :(得分:0)
if (results.ToString() != "")
声明没有其他内容。
if (results.ToString() != "")
{
...
}
else
{
return false; // or whatever fits in your logic
}
或者没有嵌套:
if (results.ToString() != "")
{
...
}
return false; // or whatever fits in your logic