• 카테고리
    • 전체 글

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

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

  • 2008.01.16 Document Library에 폴더 생성하는 방법
  • 2008.01.16 Me2 사이트
  • 2008.01.15 새로운 지식. 64bit 머신에서는 웹가든이 필요없다.
  • 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의 데이터 시트 관련 기능 제약. 1

Document Library에 폴더 생성하는 방법

기술자료/.NET 2008. 1. 16. 22:41

Document Library는  SPList의 한 종류인 동시에, 오로지 File만을 저장할 수 있는 일종의 웹폴더와 같은 구조로 된 변종 List 이다.
SPList로써 생성을 할 때, List Template 중 “문서 라이브러리”라는 형태로 만들어 주면 탄생하게 된다.그러나, 일반 Customize List 처럼 다양한 Field들을 엮는 형태가 아니고, 기묘하게 그 안에 폴더를 넣을 수 있으며 다양한 종류의 파일을 독자적으로 넣을 수 있게 되어 있다.

그러기에 지금까지 게시판 류와 같은 형태로 다루기에는 조금 내용이 다르게 진행 된다.
이 작업 중 가장 나에게 큰 태클을 걸어주신 부분은 바로 Folder 만들기.
이 부분을 하기 위해 SPList의 각종 메소드들과 속성들을 확인해 봤는데, 가장 근접한 내용은 바로 Folders라는 항목을 이용하는 것까지는 알았는데, Add를 해도 Item을 업데이트 해도 반응이 없었다. 게다가, Add 안에 들어가는 Url의 의미도 정확히 알 수도 없었다.

이에 몇 개 사이트를 돌아다니다가, 겨우 방법을 찾았다.

만일 아래와 같은 구조의 문서 라이브러리 가 있다고 할 때 생성 방법은 아래와 같다.

// 문서라이브러리1 ---> AAAA -> BBBB
//                      |
//                       --> AAAA2


// 문서 라이브러리에 해당하는 List를 얻어온다.
SPList docLib1 = web.Lists[“문서라이브러리1”];

// 문서 라이브러리의 옵션 중 폴더 생성 가능하도록 한다.
docLib1.EnableFolderCreation = true;

// AAAAA 폴더를 생성한다.
SPFolder fld_AAAAA = docLib1.RootFolder.SubFolders.Add(docLib1.RootFolder.Url + “/” + “AAAAA”);
fld_AAAAA.Update();

// AAAAA 밑의 BBBB를 생성한다.
SPFolder fld_BBBB = fld_AAAAA.SubFolders.Add(fld_AAAAA.Url + “/” + “BBBB”);
fld_BBBB.Update();

// AAAAA와 동일한 레벨로 AAAA2를 생성한다.
SPFolder fld_AAAA2 = docLib1.RootFolder.SubFolders.Add(docLib1.RootFolder.Url + “/” + “AAAA2”);
fld_AAAA2.Update(); 


즉 리스트의 RootFolder라는 부분에서 시작하여 SubFolder라는 속성값을 이용해 계속 Add로 추가해 준다. 해당하는 Url은 리스트의 RootFolder URL을 시작으로해서 계속 내려가 주면 된다. 무엇보다 제일 먼저 SPList의 EnableFolderCreation을 반드시 true로 만들어 준다.

728x90
블로그 이미지

하인도1

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

Me2 사이트

잡글 2008. 1. 16. 16:25

생각보다 재미있는 사이트를 발견했다.

http://me2day.net/neohind

위의 URL은 현재 내가 만든 사이트 인데, 이 사이트는 대략 250자의 글을 등록할 수 있는 단순한 페이지.

그리고 그 글에 동감하면 me2 카운트가 오르게 된다.

사실 다른 복잡한 부분을 떠나서, 단순한 댓글 수준의 글로

수많은 댓글과 동감이 어울어 진다는게 단순미 넘치는

훌륭한 커뮤니티 인듯 싶다.

단순한 기능에서 날카로운 커뮤니티의 장점을 살린듯.

728x90
블로그 이미지

하인도1

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

새로운 지식. 64bit 머신에서는 웹가든이 필요없다.

기술자료/.NET 2008. 1. 15. 14:09

MOSS 2007 을 설치한 후, 예전에 CPU 개수(또는 코어) 만큼 웹가든을 만드는 것이 좋다는
의견이 있었다. 그런데, 이 내용은 32bit에서나 적용될 내용이라는 것이다.
그 이유는 보통 32Bit에서는 내부 가상 메모리의 최대 크기가 2G 뿐인데,
만일 700M 이상 넘어가면, 가비지 Collection 작업이 돌게 되는데,
이 때 CPU 사용률이 엄청나진다는 것이다. 그래서 가급적 32Bit 머신에서는
여러개의 웹가든을 두어 이 가비지 Collection 작업을 적게 발생하도록 하는 것이다.

그런데, 64Bit 에서는 최대 가상 메모리 크기가 7T 이기 때문에,
이 가비지 Collection 작업이 전무 하다. 그러므로 여러개의 웹 가든을 잡을 필요조차 없다.
이 사항은 MS SharePoint 프로덕트 팀에서 말한 내용에서 언급 되어 있다.
( MOSS 2007 SP1 배포 문서에 이 내용이 담겨 있다고 한다. )

728x90
블로그 이미지

하인도1

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

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

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

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

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

«   2025/06   »
일 월 화 수 목 금 토
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

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

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015-2025 Socialdev. All Rights Reserved.

Copyright © 2015-2025 Socialdev. All Rights Reserved.

티스토리툴바