2012-07-12 2 views
-1

C# .NEt 웹 페이지 코드 뒤에 디렉토리 검색을 사용하고 있습니다. 결과를 셀의 텍스트에 추가하는 방법을 모르겠습니다. 열에 표시된 결과는 텍스트 "System.DirectoryServices.SearchResult"입니다. 문자열에 결과를 추가 할 때 특성을 올바르게 전달하지 않을 것으로 생각됩니다.GridView에 대한 .FindOne() 결과 전달 - C# .net

String Name = userName; 
DirectorySearcher ds = new DirectorySearcher(); 
ds.Filter = "samaccountname=" + Name; 
ds.PropertiesToLoad.Add("userAccountControl"); 
SearchResult sr = ds.FindOne(); 
e.Row.Cells[5].Text = sr.ToString(); 

위에서 볼 수 있듯이 sr.ToString()을 셀에 전달하고 있습니다. 이것은 올바르지 않은 것처럼 보이지만 문자열로 변환 할 수있는 변수에 결과를 전달하는 방법을 알지 못합니다. 나는 evn 시도 :

var result1 = sr; 
string result2 = result1.ToString(); 
e.Row.Cells[5].Text = result2; 
+0

왜 downvote 및 코멘트가 없습니까? – climbage

답변

1

SearchResult의 msdn 사이트에서. sr.Path으로 설정 하시겠습니까? ToString()에 대한 오버로드가 없으므로 개체의 기본값을 반환 할 것입니다.

+0

"e.Row.Cells [5] .Text = sr.Path;"사용 LDAP 경로를 리턴합니다. 사용자가 비활성화되어 있는지 알려면 userAccountControl이 필요합니다. "e.Row.Cells [5] .Text = sr.userAccountControl;"사용 에디터가 "System.DirectoryServices.SearchResult"에 정의가 없다는 오류로 간주하여 작동하지 않습니다. – user1188241

+0

당신은'sr.Properties'에있는 것을보아야 할 것입니다. 이것은 srProperties라는 추가 속성의 사전입니다. – climbage

0

SearchResult에서 sr["userAccountControl"].ToString()과 같은 것을 시도해보십시오. 검색 결과 개체는 단지 개체 일뿐입니다. 당신은 그것의 컬렉션에서로드 할 속성을 말해야합니다. PropertyNames 속성을 검사하여 결과 개체의 내용을 확인할 수 있습니다. 체크 대상 : http://msdn.microsoft.com/en-us/library/system.directoryservices.resultpropertycollection.aspx 으로 작업하려는 개체의 참조를 확인하십시오.

+0

작은 파기와 나는 그것을 얻을 수 있었다. – user1188241

+0

'문자열 이름 = 사용자 이름; DirectorySearcher ds = 새 DirectorySearcher(); ds.Filter = "sAMAccountName ="+ 이름; ds.PropertiesToLoad.Add ("userAccountControl"); SearchResult sr = ds.FindOne(); DirectoryEntry dsresult = sr.GetDirectoryEntry(); e.Row.Cells [5] .Text = dsresult.Properties [ "userAccountControl"] [0] .ToString(); ' – user1188241

관련 문제