본문 바로가기

MOSS 2007

SharePoint 다국어 지원에 대한 오해. 요즘 한국 MS에서 SharePoint를 하나라도 더 많은 곳에 팔기 위해 많은 시도들을 하고 있다. 그래서 이 SharePoint를 많은 업체들에게 소개하고 영업을 하고 있다. 그 소개와 영업하기 위해 이 SharePoint의 많은 특/장점을 제시하는데,그 중 하나가 다국어 지원이다. 우리나라의 대부분 업체들이 말하고 있는 다국어 사이트라는 개념과 SharePoint와 외국인의 입장에서 보는 다국어 사이트라는 개념에는 상당한 차이가 있다. 특히 인트라넷 시스템을 기준으로 볼 때, 확연하게 틀리다. 우리나라의 대부분의 업체들이 말하는 다국어 시스템이라는 것은, 사이트내에 담긴 내용과는 별개로 각종 메뉴나 외부 틀에 보이는 모든 형태가 언어별로 다르게 표시되는 시스템을 원한다. 즉 게시판을 예를 들면 게시.. 더보기
SPList의 문건에 대한 읽기/쓰기에 관한 속성 처리. 보통 일반적인 게시판에서는 올린 글에 대해서는 누구든지 보게 된다. 또한 특정 글의 수정 작업은 자신이 작성한 항목에 대해서만 수행할 수 있게 된다. 그런데, 혹시 아래와 같은 기능이 필요할 수 있다. 1. 하나의 게시판을 여러사람이서 공유하지만, 마치 자신만의 글만 보이도록 하고 싶다. 2. 어떠한 글이든, 권한만 있으면 편집이 가능하다. 3. 모든 사용자가 아이템 자체를 편집 못하게 한다. ( 마감 처리 ) 사실 1번과 같은 사항은 대개 View를 수정해서 자신이 작성한 글만 보이게 처리할 수 있다. 하지만, 만일 View를 바꿔 보게 되면 전체가 다 보이므로 1번의 조건에 합당하게 처리되지 않는다. 2번 같은 경우에는 글이나 문서가 공유되는 것이라서 팀 사이트 의 경우 팀 구성원이 원하는데로 수정가.. 더보기
User Field ... 우리는 농락 당했구나. 기본 제공하는 Field 중 User 필드가 있다. 이 안의 값을 가져오면 다음과 같은 형식으로 저장되어 있다. WebID#;사용자이름. 만일 해당 SPWeb 내에 Users 내에 강냥이 라는 사용자가 등록되어 있을때, 44#;강냥이 이런 식으로 기록된다. 물론 저 44라는 것은 SPUser의 ID를 의미한다. ( 무슨 숫자가 될지는 SPWeb 이 알아서 결정한다. ) 예전에 이 필드 내에 있는 값을 참조할 때는 #;를 구분자로 나누어 44로 SPUser를 찾아 값을 처리하고 그 뒤의 문자열로 값을 처리했다. 언제나 저 문자열에 대해 SPlit 로 해서 배열 짜서, 하나씩 대응 했다. 이 작업이 쉽다고 하면 쉬울 수 있겠지만, 은근히 짜증나는 작업이 아닐 수 없다. 그렇다고, 이 작업을 위한 별도의 St.. 더보기
새로운 지식. 64bit 머신에서는 웹가든이 필요없다. MOSS 2007 을 설치한 후, 예전에 CPU 개수(또는 코어) 만큼 웹가든을 만드는 것이 좋다는 의견이 있었다. 그런데, 이 내용은 32bit에서나 적용될 내용이라는 것이다. 그 이유는 보통 32Bit에서는 내부 가상 메모리의 최대 크기가 2G 뿐인데, 만일 700M 이상 넘어가면, 가비지 Collection 작업이 돌게 되는데, 이 때 CPU 사용률이 엄청나진다는 것이다. 그래서 가급적 32Bit 머신에서는 여러개의 웹가든을 두어 이 가비지 Collection 작업을 적게 발생하도록 하는 것이다. 그런데, 64Bit 에서는 최대 가상 메모리 크기가 7T 이기 때문에, 이 가비지 Collection 작업이 전무 하다. 그러므로 여러개의 웹 가든을 잡을 필요조차 없다. 이 사항은 MS SharePoin.. 더보기
Site Administrator 등록방법 Site administrator를 등록하려면, 보통 사이트 설정에 들어가 사이트 관리자 설정에 들어가, 추가하면 된다. 그러나 프로그래밍 상으로 추가하려면, 단순히 Site Users와 같은 컬랙션에 추가해서 되지 않는다. 실제로 SPWeb 내에 SiteAdministrators 라는 SPUserCollection이 있기는 하지만, 이 컬렉션은 Get 용이며, 여기에 Add 해봐야 아무런 반응을 보이지 않는다. 방법은 해당하는 사이트에 등록된 사용자의 SPUser 개체를 가져와, SPUser에서 제공하는 IsSiteAdmin을 true로 만들어주면 된다. 예제 소스는 아래와 같다. /// /// 모든 관리자를 해당 Site에 추가 /// /// /// /// static void AddSiteAdmin.. 더보기
액세스 거부시 액세스 요청 항목이 나타나게 만들기. 권한이 없는 사이트에 접속 시, 보통은 액세스 거부 창이 뜹니다. 이 때 다른 사용자로 로그인 외에 “액세스 요청”이라는 항목이 더 생길 수 있는데, 일반적인 형태로 생성하는 경우 “액세스 요청” 이라는 항목이 생기지 않습니다. 이 경우 해당 사이트 설정에서 바꿔주거나 프로그램 상에서 변경 가능합니다. 1. 사이트 설정 변경하기 사이트 설정에 들어가서 “사용자 및 사용 권한” -> “고급 사용 권한”에 들어갑니다. 그리고 고급 사용 권한 리스트가 뜨면 설정을 클릭해서 액세스 요청에 들어갑니다. 그리고 난 뒤, “액세스 요청 허용”을 체크해주시고, 액세스 요청에 대한 이메일을 어디로 보낼지, 메일 주소를 넣으면 됩니다. 2. 프로그램 상으로 변경하기. 원하는 사이트의 SPWeb을 엽니다.(SPWeb 가져오.. 더보기
간단한 SPList 권한 체크 방법 SPList 개체에서 특정 사용자의 특정 권한을 체크하고 싶을 때 사용하는 방법이다. 일전 SK 에너지(구 SK Corp)에서 게시판에서 처리한 방법을 보면 아래와 같이 처리되어 있었다. // 1번 그룹이 바로 글 쓰기 권한 SPList list = SPContext.Current.Web.GetList("....."); newItemGroup = 1; usableNewItem = false; SPGroup group = SPContext.Current.Web.Groups[newItemGroup]; if( group.ContainsCurrentUser == true ) { // SPList에 글쓰기가 있으니.. 쓰는 권한에 관련된 처리를 여기에.. SPListItem newItem = list.items... 더보기
SPList 추가 또는 SPList 템플릿 Feature 추가 중에 발생되는 오류 중. List 템플릿 추가 중에 아래와 같은 오류가 끊임없이 발생하여, 추가 List 템플릿으로 web.Lists.Add(".....", "......", listTemplate) 메소드로 SPList를 추가할 수 없는 경우가 있습니다. System.Data.SqlClient.SqlException: 테이블 'WSS_Content.dbo.EventReceivers', 열 'Name'에 NULL 값을 삽입할 수 없습니다. 열에는 NULL을 사용할 수 없습니다. INSERT이(가) 실패했습니다. 문이 종료되었습니다. 위치: System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) 위치: System.Dat.. 더보기