• 카테고리
    • 전체 글

    • 카테고리1
    • 카테고리2
    • 카테고리3
    • 카테고리4
  • 태그
  • 방명록

'분류 전체보기'에 해당되는 글 1243건

  • 2008.01.14 People Picker 사용방법
  • 2008.01.14 Site Administrator 등록방법
  • 2008.01.11 Windows Live Writer를 이용한 SharePoint 블로그 게시
  • 2008.01.10 액세스 거부시 액세스 요청 항목이 나타나게 만들기.
  • 2007.12.27 MOSS 2007의 데이터 시트 관련 기능 제약.
  • 2007.12.27 컨텐츠 DB 파일 옮기기.
  • 2007.12.21 Canon Rock Version
  • 2007.12.18 엠마. 영국형 사랑.

People Picker 사용방법

기술자료/.NET 2008. 1. 14. 10:58

People Picker 라는 것은 SharePoint 내에 특정 사용자나 그룹 등을 등록할 때 사용하는 UI용 웹컨트롤을 의미한다. SharePoint를 사용하다 보면, 사용자 등록 할 때 보이는 부분(아래 그림 참조)가 있는데 그 것이 바로 People Picker 이다.




이 기능은 설치된 SharePoint의 기본 인증 형태에 따라 사용자 검색하는 방법이 알아서 적절히 바뀌어 적용된다. 로그인 이름이로도 되고, 한글 이름도 되고, 이메일도 가능하다.
물론 사용자 프로필을 어떻게 엮어 놓았냐에 따라 잘 될 수도 안될 수도 있다.
일단, AD를 이용하여 구성했다면, 큰 문제  없이 이용할 수 있다.
아래의 설명도 최소한 AD로 구성된 시스템에서는 문제 없이 사용할 수 있을 것이다.
그리고 설명을 위해 ASPX 페이지 구성을 기준으로 설명할 것이다.

1. Web Control 붙이기.
이 웹컨트롤을 붙이기 위해서는 ASPX 페이지 소스 상에 WSS에 대한 Name Space를 정의해 준다.

<%@ Register Tagprefix="wssawc" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

<%@ Register ..... %>라는 지시어를 이용해서 Microsoft.SharePoint.Webcontrols를 정의해준다. 여기서는 wssawc 라는 이름으로 구성한다.

2. 붙이고 싶은 위치에 웹컨트롤 붙이기.
Table이 되었던, 날 페이지위에 되었던 간에 원하는 위치에 아래와 같은 형식으로 Web Control 코드 부분을 붙인다.
<wssawc:PeopleEditor
        AllowEmpty=false
        ValidatorEnabled="true"
        id="userPicker"
        runat="server"
        ShowCreateButtonInActiveDirectoryAccountCreationMode=true
        SelectionSet="User,SecGroup,SPGroup"
        />

일단 각 옵션들에 대한 자세한 설명이나 추가 옵션에 대해서는 WSS 도움말(WSS SDK)에서 PeopleEditor를 참조한다.

3. PeoplePicker에서 선택한 내용 읽어 오기.
1~2 까지 해서 ASPX 페이지를 구성한 뒤 띄워보면, 맨 위의 그림과 같은 PeoplePicker를 볼 수 있다. 그 안에서 사람이름을 치거나, 로그인 이름을 치고 사람 아이콘에 체크 모양이 있는 버튼을 클릭하면,  자동으로 이름으로 변경되면서 밑줄이 그어짐을 볼 수 있다.



이렇게 입력한 내용을 읽어오는 부분을 소스로 구성하면 아래와 같다.

ArrayList aryAccounts = userPicker.Accounts;
if (aryAccounts.Count == 0)
      return string.Empty;
StringBuilder sb = new StringBuilder();
foreach (string sKey in aryAccounts)
{
      sb.Append(sKey);
      sb.Append(";");
}
return sb.ToString();

위의 소스 중 핵심적인 부분은 바로 굵은 줄 부분인데, Picker 컨트롤의 Member 중 Account를 열면 ArrayList가 나오게 된다. 일단 이 ArrayList를 꺼내서 보게 되면, 문자열로 로그인 이름이 나오게 되는데, 그 로그인 이름을 이용하여 원하는 조작을 수행하면 된다.
위의 소스에서는 Picker로 선택한 사용자의 모든 로그인 이름을 ";"으로 구분하여 하나의 문자열로 만드는 것이다.

4. PeoplePicker에 특정 데이터 넣기.
이번에서는 소스에서 PeoplePicker 내에 특정 값을 넣는 작업이다. 처음에는 추가하고자 하는 값을 넣는 메소드나 콜랙션 프로퍼티가 없어서 난감했다. 더욱이 위의 Accounts 라는 콜랙션에 직접적으로 ADD 할 수 없었다. 이에 Method를 더 확인해 본 결과, ArrayList를 통채로 넣는 UpdateEntities 라는 함수를 이용해야 했다.
그런데, 이 ArrayList 라는게 값을 넣는 방법이 Object 라서 로그인 이름을 그냥 넣어서 추가했더니 이번에는 단순 문자열은 받아 줄 수 없다는 오류가 발생하면서 넣어지지 않는 것이다. 그래서 이래저래 짱구를 굴린 결과 아래와 같은 형태의 소스를 구성할 수 있었다.
ArrayList aryAccounts = userPicker.Accounts;
aryAccounts.Clear();
if (string.IsNullOrEmpty(sAdminList) == false)
{
    string[] aryAdminList = sAdminList.Split(';');
    foreach (string sAdminID in aryAdminList)
    {
        Microsoft.SharePoint.WebControls.PickerEntity newEntity = new Microsoft.SharePoint.WebControls.PickerEntity();
        newEntity.Key = sAdminID;
        newEntity = userPicker.ValidateEntity(newEntity);
        aryAccounts.Add(newEntity);
    }
}
userPicker.UpdateEntities(aryAccounts);

핵심적인 부분은 저 굵은 글자가 된 부분이다.
일단 Accounts를 이용해서 ArrayList를 가져온다.
그리고 난뒤 PickerEntity 라는 클래스를 이용해 새로운 PickerEntity를 만든다.
이 새로 만든 PickerEntity의 속성 값에 로그인 이름이나, 이메일 등 검색 단서에 해당하는 값을 넣어준다. 여기서는 제일 만만한 로그인 이름을 넣었다.
그리고 난뒤, PeoplePicker를 이용해서 ValidateEntity 함수를 실행해준다. 이렇게 실행하면 PeopleEntity가 새롭게 돌려주는데, 이 안에 Key 값외의 다양한 속성 값들을 채워 준다.
이 새롭게 채운 PeopleEntity를 ArrayList에 추가한다.
그리고 난 뒤 업데이트 된 ArrayList를 UpdateEntities라는 메소드를 이용해 추가해 준다.

--- 이미지업데이트 : 고객사 사이트에서 자료를 캡쳐해 오다가 보니, 실수로 고객사 분 성함과 이메일이 그대로 노출되 버렸더군요... 다행히 회사의 김진 과장님이 가르쳐 주셔서 잽싸게 모자이크 처리를....-_-;;; 이런 실수 안해야 되는데, 큰일 날뻔 했습니다.


728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

Site Administrator 등록방법

기술자료/.NET 2008. 1. 14. 08:28

Site administrator를 등록하려면, 보통 사이트 설정에 들어가 사이트 관리자 설정에 들어가,

추가하면 된다.

 

그러나 프로그래밍 상으로 추가하려면, 단순히 Site Users와 같은 컬랙션에 추가해서 되지 않는다.

실제로 SPWeb 내에 SiteAdministrators 라는 SPUserCollection이 있기는 하지만, 이 컬렉션은

Get 용이며, 여기에 Add 해봐야 아무런 반응을 보이지 않는다.

 

방법은 해당하는 사이트에 등록된 사용자의 SPUser 개체를 가져와, SPUser에서 제공하는 IsSiteAdmin을 true로 만들어주면 된다.

 

예제 소스는 아래와 같다.

 

///   
/// 모든 관리자를 해당 Site에 추가  
///   
///   
///   
///   
static void AddSiteAdmins(SPSite site, SPWeb web)  
{             
    // 관리자 목록에서 사용자 등록  
    foreach (string sAdminLoginName in TeamCommMemberSync.arySiteAdminList)  
    {  
        SPPrincipalInfo info = SPUtility.ResolveWindowsPrincipal(site.WebApplication, sAdminLoginName, Microsoft.SharePoint.Utilities.SPPrincipalType.User, false);  
        // 인증정보를 성공적으로 가져오면 처리  
        if (info != null)  
        {  
            // 해당 사용자를 group내에 있는지 확인  
            SPUser user = null;  
            try  
            {  
                user = web.SiteUsers[info.LoginName];  
            }  
            catch  
            {  
                user = null;  
            }  
                    
            // 해당 group내에 해당 사용자가 없으면, 추가 처리.  
            if (user == null)  
            {  
                try  
                {  
                    // 해당 사이트에 추가  
                    web.SiteUsers.Add(info.LoginName, info.Email, info.DisplayName, info.DisplayName);  
                    web.Update();                         
                    user = web.SiteUsers[info.LoginName];                                 
                }  
                catch  
                {  
                    //Utils.AppLogger.ExceptionLogWrite(this.GetType(), ex);  
                }  
            }  
            if (user != null)  
            {  
                user.IsSiteAdmin = true;  
                user.Update();  
            }  
        }  
    }  
}
 

핵심 부분은 45라인 부분이다.
해당하는 SPWeb 개체에서 얻은 SPUser 개체에 값을 설정하고 Update 해주면 완료된다.

만일 위의 작업이 실패하는 경우의 케이스로는 해당하는 SPWeb 개체를 가져올 때, Site Administrator외의 일반 계정으로 SPWeb을 열었을때는

에러가 발생하게 된다.

 

현재까지 테스트된 사항에 의거하면, 최소한 저 위의 코드가 실행하는 주체가 Site Administrator 일 경우에는 문제없이 실행된다.

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

Windows Live Writer를 이용한 SharePoint 블로그 게시

기술자료/.NET 2008. 1. 11. 13:57

Windows Live Writer가 역시 MS에서 제작된 기능이기에,
보다 쉽게 SharePoint 내에 있는 블로그에 접근 가능하다.
사실 SharePoint의 웹 상에서 블로그 글을 작성하는 기능은 생각보다 한계가 많은 편이다.
보안적인 문제로 인해 더 이상 Active X 기반의 웹 에디터를 기본 제공하지 않기 때문에,
완전 웹 기반의 도구다 보니, 표기능도 부실하고, 이미지 넣는 기능도 부실하며,
기타 글 작성하는데도 비좁고 기록도 바로 바로 하기 힘들다.

이에 반해 Live Writer는 태생 자체가 MS Word나 FrontPage와 같기 때문에,
넓은 화면에 다양한 기능들이 들어가 있기에 편하게 작업할 수 있다.
만일 기록할 생각이 있다면,아래와 같이 수행하면 된다.

  1. Live Writer를 다운 로드 받아 설치한다. ( 단 Windows XP, Vista만 지원 )
  2. 초기 계정 설정 화면에서 SharePoint 웹로그를 선택한다.
  3. 다음 버튼을 클릭하면 해당 웹 로그 주소를 넣으라고 하는데, 블로그 메인 페이지 주소를 넣어주면 된다.
    ( 이 블로그 주소는 http://intranet.neosystem.net/personal/neohind/Blog/default.aspx 이기에 이 주소를 넣었음)
  4. 자동으로 무언가 설치가 진행된다.
    (중간에 스타일 같은 것을 묻는 창이 뜬다면 이 블로그는 커스터마이징이 된것이기 때문에, 추가적인 설정이 필요하다.
    자세한 사항은 해당 블로그 설정이나 다른 관련 정보를 참고해야 할 것 같다.)  

지금 이 글도 Writer를 이용해서 포스트 작성 중인데, 생각보다 좋은 기능인듯 싶다.
이 쪽 TextCube 쪽의 블로그는 위의 SharePoint 블로그와는 다르게 직접적인 설정이 추가적으로 필요하긴 하지만,
직접 웹을 핸들링 하는 것보다는 편리하게 글을 작성할 수 있다는 잇점이 있는 것같다.

당분간은 이 블로그에서도 Windows Live Writer를 활용하려 한다.

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

액세스 거부시 액세스 요청 항목이 나타나게 만들기.

기술자료/.NET 2008. 1. 10. 12:14

권한이 없는 사이트에 접속 시, 보통은 액세스 거부 창이 뜹니다.

이 때 다른 사용자로 로그인 외에 “액세스 요청”이라는 항목이 더 생길 수 있는데,

일반적인 형태로 생성하는 경우 “액세스 요청” 이라는 항목이 생기지 않습니다.



이 경우 해당 사이트 설정에서 바꿔주거나 프로그램 상에서 변경 가능합니다.


1. 사이트 설정 변경하기
사이트 설정에 들어가서 “사용자 및 사용 권한” -> “고급 사용 권한”에 들어갑니다.

그리고 고급 사용 권한 리스트가 뜨면 설정을 클릭해서 액세스 요청에 들어갑니다.




그리고 난 뒤, “액세스 요청 허용”을 체크해주시고, 액세스 요청에 대한 이메일을 어디로 보낼지, 메일 주소를 넣으면 됩니다.




2. 프로그램 상으로 변경하기.
원하는 사이트의 SPWeb을 엽니다.(SPWeb 가져오는 방법에 대해서는 별도로...)
그리고 난 뒤, SPWeb 이 web 이라는 변수로 되었다고 했을때,


web.RequestAccessEmail
안에 원하는 Email 주소를 넣어주기만 하면,

자동으로 액세스 요청 항목이 활성화 됩니다.


만일 허용하지 않으려면, string.Empty 혹은 null을 넣으시면 됩니다


728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

MOSS 2007의 데이터 시트 관련 기능 제약.

기술자료/.NET 2007. 12. 27. 10:34

데이터 시트 편집이라는 기능은 MOSS내 List 스타일의 데이터를 직접 웹상에서 수정할
때 사용되는 기능이다. ( 아래그림 참조 )



그런데, 현재까지 확인해 본 결과, MS Office 2007의 MS Access 2007이 설치되어야 정상적으로 동작했다. 만일 MS Access 2007이 없거나 2007 미만의 버전이 설치된 경우 아래와 같은 오류를 발생하게 된다.


게다가 위의 페이지에서 뒤로(Back) 가기 버튼을 클릭하면 IE가 터지기 까지 한다.

이 문제는 결국 MS Office 2007을 설치해야 정상적으로 사용할 수 있다.

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

컨텐츠 DB 파일 옮기기.

기술자료/.NET 2007. 12. 27. 10:17
주의 : 이 작업은 SQL Express 버전인 경우에는 실패할 수 있습니다. ( SharePoint 독립실행형으로 설치된 경우 SQL Express로 설치됨 )

SQL 2005를 기본 값으로 설치하게 되면
C:\Program Files\ 밑의 MSSQL 폴더 아래에 Data 파일까지 저장되게 된다.
이 경우 문제가 파일 사이즈가 커지게 되고, 디스크의 성능이 점점 떨어지면서,
운영체제 전체가 느려지게 되게 된다. ( 보통 운영체제가 C:\ 에 설치되므로 )

그래서 일반적으로 별도의 위치에 설치하게 되는데, 운이 나쁘게
SharePoint를 이미 설치한 경우에는 사실 DB 파일 바꾸는 것은 SharePoint를 다시 설치하는 것과 같다.
이 경우 다른 위치에 DB 파일을 옮겨야 되는데, 해결하는 방법은 아래와 같다.

1. 모든 SharePoint 서비스를 Stop 시킨다.
  Office SharePoint Server Search
  Windows SharePoint Services Administration
  Windows SharePoint Services Search
  Windows SharePoint Services Timer
  Windows SharePoint Services Tracing

2. SQL Management Studio를 실행하여, 원하는 DB를 분리(detach) 한다.

3. 해당 DB 파일(MDF, LDF)들을 복사하여 원하는 위치에 복사/이동한다.

4. SQL Management Studio를 실행하여, 해당 DB 파일을 연결(Attach) 한다.

5. 앞서 Stop 시킨 모든 서비스를 Start 해준다.

SharePoint의 모든 데이터들이 DB에 담기기 때문에, 단순 SQL 설정만으로 해결되게 된다.


728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

Canon Rock Version

잡글 2007. 12. 21. 19:13

예전에 Jerry C 라는 사람이 Rock Version을 만들어 UCC에 등록된 음악듣고
감동했는데, 이번에 Funtwo 라는 사람이 등록한 이 UCC는 사운드 깔끔하게
넣어서 듣기 좋았다.

역시... 다시 들어도 감동이다.


728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

엠마. 영국형 사랑.

잡글 2007. 12. 18. 01:51

메이드인 엠마, 그리고 부잣집 아들 윌리엄.
조금 신분적인 차이가 있기에 쉽게 만나긴 힘든 두사람이지만,
사실 그런 복잡 다단하기 보다는
무언가 단순한 두사람의 미묘한 줄다리기 같은.
새침을 떼는 것 같기도 하고.. 아닌것 같기도 하고.
순진하기도 하면서 무언가 진지하고...

생각보다 재미있는 그림을 보여준다.

참.... 자연스럽게 그려준 이야기 같다.
아직 3편까지 겨우 본것이긴 하지만,
천천히 살펴봐야 겠다.


728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

  • «
  • 1
  • ···
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • ···
  • 156
  • »
250x250

블로그 내에 소스 코드 삽입 이사온 기념 스킨도... RSS 전문 기능 비활성화 관련. 스킨 바꾸어 보았습니다. 서버 파일 정리 좀 했습니다.

«   2025/05   »
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

매뉴얼 인터파크 e-book 친구 me2dayzm 블로그 수 Google Apps Engine SharePoint WSS 협업 windows Visual Studio twi2me Tutorial 것 2010 비스킷 Azure 불만 java 지름신 Buscuit me2sms 개발환경 좀 MOSS 2007 오류 moss me2photo

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015-2025 Socialdev. All Rights Reserved.

Copyright © 2015-2025 Socialdev. All Rights Reserved.

티스토리툴바