柚子Nan--回归原点

Everything can be as easy as you like or as complex as you need.
posts - 231, comments - 970, trackbacks - 17, articles - 29
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理
      这一周都在修Defect,修的晕头转向,今天遇到两个小问题,虽然很小但是很烦人,把这么一点实战经验分享给大家看看。

l        
首先说LinkButton为什么失效了
    由于页面比较复杂,使用了一些Validator 控件,这是在客户端验证的控件,当有错误的时候就首先显示这个错误。但是这个ValidatorLinkButton有什么关系呢?察看运行页面的HTML代码,发现生成了一段JavaScript,需要验证通过才可以进行。{if (typeof(Page_ClientValidate) != 'function' ||  Page_ClientValidate()) __doPostBack('LinkButton1','')} 可是我没有加收工写过这些代码,后来发现LinkButton有个属性LinkButton.CausesValidation,获取或设置一个值,该值指示在单击 LinkButton 控件时是否执行验证,呵呵,很简单,把它设置为False就可以了。 

l         再说说AD中为什么找不到用户了
先前,为了查找一个用户,用如下的代码,然后在其他调用的地方判断这个SearchResult是否为空:

private SearchResult GetSearchResultByUserID(string UserID)
    
{
        System.DirectoryServices.DirectoryEntry AppNode 
= new DirectoryEntry(ServerName+"/"+OuName+","+DomainName,UserName,Password);
        DirectorySearcher Ds 
= new DirectorySearcher(AppNode);
        Ds.Filter 
= "(&(objectClass=user)(cn=" + UserID + "))";

        SearchResult result 
= Ds.FindOne();
        
return result;
    }


    今天作了这样的一个用户管理的目录结构,如图:

    (原来的用户都是在User Directory根目录下的)那么此时用户就找不到了,因为FindOne方法不会递归目录去查找,只是在当前的目录进行查找。后来没有办法,只好把它改成了FindAll,然后再对比每个节点的用户名是否相同。
private SearchResult GetSearchResultByUserID(string UserID)
        
{
            DirectoryEntry rootentry 
= new DirectoryEntry(ServerName+"/"+DomainName,UserName,Password);
            DirectorySearcher ds 
= new DirectorySearcher(rootentry);
            ds.Filter 
= ("(objectClass=user)");
            rootentry.RefreshCache();
            SearchResultCollection src 
= ds.FindAll();
            
foreach(SearchResult sr in src)
            
{
                System.DirectoryServices.DirectoryEntry mUser 
= new System.DirectoryServices.DirectoryEntry(sr.GetDirectoryEntry().Path,UserName,Password);
                
if(string.Compare(mUser.Properties["sAMAccountName"].Value.ToString(), UserID, true== 0)
                
{
                    
return sr;
                }

            }

            
return null;
        }


标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
 
另存  打印