MOSS 2007 개발을 할 때, 가상 디렉토리를 만들어 별도의 ASPX 페이지를 만들어
추가적인 기능을 꾸미려고 할 때가 있다.
그러나 임의대로 만들거나, 기본적으로 생성되는 대로 만들게 되면 MOSS 2007의 기능을
사용할 수 없거나 혹은, 아예 페이지 자체가 뜨지 않는 경우가 있다.
그래서 대부분의 개발자들은 _layouts 에 ASPX 페이지를 저장하는 경우가 많다.
그러나 자신만의 파일들을 별도로 구성해 관리하려면 역시 별도의
가상 디렉토리를 구성하는 것이 좋고, 그를 위한 방법을 정확히 파악하는 것이 좋다.

1. INETMGR - 인터넷 정보 서비스 관리자 실행을 한다.  그리고 난 뒤 가상 디렉토리 생성을 시작한다. 가상 디렉토리 만들려면 만들려는 사이트에서 오른쪽 버튼을 클릭한 뒤, 새로 만들기 -> 가상 디렉토리를 선택한다.
사용자 삽입 이미지


2. 가상 디렉토리 만들기 마법사가 실행되면 다음을 누르면 가상 디렉터리 이름을 넣는다. 이 부분은 사이트 경로 URL을 누를 떄 사용되는 이름이다.
사용자 삽입 이미지


3. 가상 디렉터리 상에서 보여줄 내용이 담긴 HDD상에 있는 경로를 넣는다. 직접 넣어도 되며, 찾아보기를 사용해서 경로를 넣어도 된다.
사용자 삽입 이미지
사용자 삽입 이미지

4. 다음을 클릭하면 디렉토리 액세스 권한을 설정하게 되는데, 여기서 읽기/스크립트 실행/실행 만 체크해주고 다음을 클릭한다.
사용자 삽입 이미지

5. 가상 디렉터리 만들기 마법사의 마지막이 나오고 마침을 클릭하면 가상 디렉터리가 만들어진다.

6. 만들어진 가상 디렉터리를 위에서 오른쪽 버튼을 클릭해서 속성을 클릭한다.
사용자 삽입 이미지


7. 속성 창이 뜨면 제일 먼저 자동으로 생성되어 있는 웹 응용 프로그램을 삭제해준다. 삭제하는 방법은 응용 프로그램 이름 옆에 있는 제거 버튼을 클릭하면 된다. 삭제한 후 적용 -> 확인하면 된다.
사용자 삽입 이미지
 


여기까지는 기본적으로 해주어야 되는 사항들이다.
그 이후에는 2가지 형태로 나뉘어 구성해야 하는데, 그 구분의 기준은 접근 권한이다.
1. 모든 사용자들이 접근 가능한 경우
2. 로그인한 사용자들이 접근 가능한 경우
3. 관리자 권한을 가진 사용자들이 접근 가능한 경우

이런 권한별로 구성하려면 접근 권한 셋팅이 달라지기 때문에, 이에 대한 설명은 다음 부분에서 다루려고 한다.
728x90
외국에서 제공하는 각종 이벤트 핸들러들을 쓰다가, 이래저래 피곤해서, 그냥 만들어보았다
물론 화려한 트리 UI 같은 것은 제공하지 않지만, 내 궁금증과 불편함을 해소해주는 수준의
프로그램이다. 추후 C# Windows APP UI가 익숙해지면 조금씩 개선할 생각도 있지만, 언제가 될지..

사용자 삽입 이미지

이 프로그램은 웹서비스를 이용해서 구성한 프로그램이 아니기 때문에, 실제 이벤트를 추가/삭제/편집할 사이트에서 직접 실행해야 한다.(터미널 서비스를 이용하던지, 콘솔로 직접 들어가든지) 일단 실행하면 위와 같이 나온다.

1. 해당 사이트 연결 및 GAC 로딩
사이트 URL 내에 자신의 사이트 Url을 넣는다.
사용자 삽입 이미지
이 URL을 접근할 때는 로그인한 계정을 기반으로 접근하기때문에, 해당 사이트에 접근 권한이 충분한(최소한 사이트 관리자 급) 계정으로 로그인해서 이 프로그램을 실행할 필요가 있다.
연결 버튼을 클릭하면 약 30초 정도 기다리면 프로그램이 전체적으로 로딩한다.
이 로딩 시간이 긴 이유가 GAC 내의 모든 Assembly를 로딩하는데 걸리는 시간이다.

2. 이벤트를 처리할 사이트 및 리스트 선택
사용자 삽입 이미지
왼편에 있는 웹사이트 및 리스트를 선택한다. 현재 이 이벤트 핸들러 도구는 Web, Field 단위의 기능은 없고, 오로지 List에 대한 설정만 가능하다. 그러므로 Web Site를 선택한 뒤에 List를 선택해준다. 이벤트가 있으면 최하단에 있는 목록도 업데이트 된다.

3. 이벤트 추가/수정/삭제
사용자 삽입 이미지
3.1 새 이벤트 만들기.
생성하려는 리스트를 선택해 주었으면 먼저 자신이 이벤트로 등록할 때 사용될 어셈블리는 선택한다. 이 때, 주의할 점은, 반드시 GAC에 등록되어 있어야 한다. 별도의 DLL을 사용해서 등록한다면, 다른 도구를 활용하는 것이 좋을 듯 싶다.
이벤트 핸들러가 있는 어셈블리를 선택하면, 그 안에 적절한 이벤트 핸들러 클래스가 있는 경우 이벤트 관련 클래스가 자동으로 업데이트 된다. 그 안에 적절한 이벤트 핸들러 클래스를 선택한다.
그리고 이벤트 이름을 넣고, 적절한 순번( 1~50000 사이), 동작 방법을 넣는다.
이벤트 이름은 이 이벤트를 대표하는 이름인데, 이 값을 넣어야 순번이 정상적으로 처리된다.
순번은 이벤트가 실행할 순서를 의미하는데, 1~50000 사이의 값을 넣으면 된다.
액션은 이벤트가 발생되는 조건을 의미하는데, Item Added 나 Item Updating 같은 것을 의미한다.

값이 정상적으로 들어 갔으면 새 이벤트를 클릭하면 위의 설정 대로 이벤트가 추가된다.

3.2 기존 이벤트 수정하기.
사용자 삽입 이미지
이벤트를 수정하려면 최 하단에 위치한 이벤트 목록에서 편집하려는 이벤트를 선택한다.
그리고 자신이 변경하고자 하는 형태의 값으로 변경하고 등록/변경을 클릭한다.
(주의! 절대 이 작업을 통해 어셈블리나 이벤트 핸들러 클래스 및 액션을 변경하면 안된다. 여기서는 동일한 이벤트라고 비교 하는 값이 이벤트 핸들러 클래스와 액션이기 때문이다!)

3.3 이벤트 삭제하기.
삭제하려는 이벤트를 하단의 목록에서 선택한 뒤에, 선택 삭제를 클릭한다.

3.4 이벤트 목록 Save/Load
현재 이벤트 목록을 Save하는 방법은 save 버튼을 클릭한 뒤에, 적절한 장소에, xml이라는 확장자로 저장해주면 된다.
그리고 Load 하고 싶은 적절한 리스트에서 load 버튼을 클릭한 뒤에, 해당 xml 을 읽어 주면 xml 내용대로 복구 된다.
xml 내에 필수적으로 들어가야 되는 속성이 없는 경우 해당 이벤트는 추가되지 않는다.
event class="" assembly="" seq="" type="" name=""
수작업시에 필수 속성 값이 잘못되지 않도록 주의하면서 편집한다.

728x90
원본 : http://blogs.msdn.com/fooshen/archive/2007/02/01/installing-moss-without-ad.aspx

여기저기에는 MOSS에 대한 폼인증(게다가 대부분은 SqlMembership Provider를 이용한 ASP.NET 방식)이 산재되어 있어 손쉽게 찾을 수 있다. 최소한 이 부분만 보더라도 SPS 2003보다 훨씬 발전된 형태를 볼 수 있다. 예전 MOSS의 배포를 시도하려는 고객을 도와준 적이 있는데, 폼인증 방식은 아니였지만, AD 도메인 구성원이 아닌 SQL 서버를 SharePoint Farm으로 구성시키려고 했었다.

처음 접했을 때는 이 작업자체가 전혀 불가능해 보였다. - SharePoint 제품 및 기술 구성 마법사로 처음 데이터베이스를 만들려고 할 때, 데이터베이스 서버를 연결 계정 자체를 도메인\계정이름 형식으로 넣도록 되어 있다. 최소한 이 도구를 이용해 설치하게 되면 SQL 인증 방식을 사용할 수 없다는 것을 알 수 있다.


자, 지금 부터는 SharePoint 설치 마법사에서 자동으로  SharePoint 제품 및 기술 구성 마법사로 시작하게 해주는 체크 버튼을 끄고 시작하도록 하자. ( 물론 SharePoint 제품 및 기술 구성 마법사가 실행했었다고 좌절하지 않아도 된다. 실행됬으면 그냥 종료 시키면 된다.)



SQL Management Studio(SQL 2K면 SQL Enterprise)를 먼저 실행시킨다. 먼저 Latin1_General_CI_AS_KS_WS(약어를 풀자면, C = 대/소문자, A=액센트, K=카나, W=길이 I/S=문맥형/단순형) 유형으로 데이터베이스로 만들게 된다. 먼저 MOSS에서 사용할 수 있을 만한 계정을 SQL 로그인에 구성하되 4개의 데이터베이스에 대해 dbo가 될 수 있도록 만들어준다. 그 4개의 데이터베이스란 SharePoint_Config", "SharePoint_AdminContent", "SharedServices_DB" 그리고 "SharedServicesSearch_DB" 이다.
DB 계정을 정상적으로 생성했다면 명령 프롬프트를 띄운다.
그리고 %programfiles%\Common Files\Microsoft Shared\web server extensions\12\BIN 로 이동한다. 그리고 난 뒤에 다음 명령 줄을 입력한다.

PSConfig -cmd -configdb -create -server 데이터베이스이름 -database SharePoint_Config -user 도메인/계정이름 -password 암호
-dbuser 데이터베이스계정 -dbpassword 데이터베이스용계정암호 -admincontentdatabase SharePoint_AdminContent

위의 값들에 대한 설명을 하자면 아래와 같다.
server - SQL 데이터베이스의 인스턴스 이름
database - SharePoint의 설정을 담게될 데이터베이스 이름(보통 SharePoint_Config를 사용)
user - 서버 팜의 관리자로 동작하는 윈도우 계정
dbuser - 데이터베이스를 접속할 때 사용될 SQL 로그인 계정
admincontentdatabase - SharePoint 중앙 관리 사이트에서 사용될 데이터베이스 이름(보통 SharePoint_AdminContent를 사용)

위의 명령을 실행하면 아래와 같이 진행될 것이다.


이제 다시 SharePoint 제품 및 기술 구성 마법사를 실행하도록 한다. (시작 -> 모든 프로그램 -> Microsoft Office Server -> SharePoint 제품 및 기술 구성 마법사 )
실행해보면 앞에서 이미 구성 데이터베이스를 생성했기 때문에, 이 내용을 자동으로 찾아내서 맨 처음 그림과 같은 형태가 아닌 아래와 같은 형태로 뜬다.

연결을 끊지 않고 다음(N)>을 클릭해서 설치를 진행해준다. 이 때 틀만 만들어지는 4개의 데이터베이스에 실제적으로 필요한 사항들을 설치해주게 된다. 이 부분은 일반적인 SharePoint 설치와 동일하게 진행된다.

전부 설치 한 뒤에, SharePoint 중앙 관리를 실행하도록 한다. 팜의 서비스에 대해서 설정할 때, 데이터베이스 관련된 설정이 나오게 되는데, 이 때 윈도우 인증 방식을 쓰지 말고 SQL 인증을 선택하여 명령 줄에 넣었던 계정으로 넣어주면 된다.
이젠 SSP를 설정할 때 DB위치를 잡는 것도 쉽게 되며 SQL 인증 만으로도 충분하게 동작한 것을 확인할 수 있을 것이다.

MOSS 배포할 떄 SQL 로그인을 이용한 SQL 접속이 생각보다 쉽다는 것을 알 수 있다.


728x90
사이트내의 사용자 프로퍼티를 가져오는 방법은 아래와 같다.

SPSite curSite = <현재 SPS 사이트를 SPSSite로 돌려주는 무언가 작성>

Microsoft.Office.Server.ServerContext serverContext =  
    Microsoft.Office.Server.ServerContext.GetContext(curSite);

Microsoft.Office.Server.UserProfiles.UserProfileManager mgr =
    new  Microsoft.Office.Server.UserProfiles.UserProfileManager(serverContext);

Microsoft.Office.Server.UserProfiles.UserProfile profile =
    mgr.GetUserProfile(<로그인 사용자 계정>);

// 프로필 내에 부서("Department") 값을 가져옴
string deptName = (string)profile["Department"].Value;

<현재 SPS 사이트를 SPSSite로 돌려주는 무언가 작성> 같은 경우 다양한 방방법으로 가져올 수 있다.   new SPSite("http://<site url>") 과 같은 방법으로 처리하거나 기타 해당하는 사이트의 값을 가져오는 방법을 통해 가져오면 된다.

<로그인 사용자 계정> 이란, 윈도우 인증을 사용하는 경우 <도메인 이름>\<사용자 ID> 가 될 것이고, Form 인증인 경우 <인증 프로바이더 이름>:<사용자 ID>가 된다.
이것은 인증 방법에 따라 달라지므로 알아서 넣는다.

마지막으로 프로필의 값은 프로필 콜랙션 중 [ ] 를 사용해서 가져오면 되는데, 이 때 가급적 Static 이름을 사용하는 것이 좋다. "Department" 같은 경우 Display Name은 "부서" 인데, "부서"로 하는 경우 종종 프로필 속성값을 변경하면 더 이상 찾지 못하는 경우가 발생할 수 있다.

해당 값은 object 타입이므로 적절한 Type으로 캐스팅 해야 한다.






728x90

MOSS 2007에서 사이트 내 마스터 페이지를 추가/삭제/편집 하는 페이지가 있다.

사용자 삽입 이미지
일반적인 설정으로 모든 권한을 Administrators 그룹에 속한 계정에게 주고,
그 계정으로 로그인 하면 모든 페이지를 접근 할 수 있으며, 지금 말하려는
마스터 페이지 및 페이지 레이아웃 안의 설정 페이지에도 들어갈 수 있다.

그러나 Form 인증과 같은 전혀 다른 Login을 하거나 Administrators 그룹내의 계정이 아니면,
저 안의 페이지에 접근 할 수 없다.
심지어 사이트의 소유자 권한을 가지고 있어도 불가하다.

이 안에 들어가려면, 사이트의 모음(Site Collection)의 관리자에 등록되어 있어야 한다.
여기에 등록하려면, 최소한 SharePoint 3.0 중앙관리에 들어가야 가능하다.
사용자 삽입 이미지

중앙관리에 들어가 응용 프로그램 관리SharePoint 사이트 관리 목록 중 사이트 모음 관리자를 선택하면 된다.























모음 관리자에서 자신이 원하는 계정을 하나 추가하면 된다.
보통 사이트를 처음에 만들때 정한 계정이 들어가 있는데, Form 인증으로 중간에 설정시에는 안들어가 있는 경우가 많다. 그러므로 여기서 추가해주는 것이다.
사용자 삽입 이미지
위의 그림에서 처름 보조 사이트 모음 관리자 같이 윈도우 인증 계정이 아니는 Form 인증과 같은 별도 인증 계정을 저런 식으로 등록해주어야 저 계정으로 완벽한 사이트 관리를 수행할 수 있다.

현재까지 사이트 관리에서 안되는 부분은 이 마스터 페이지 등록/삭제/편집 페이지 뿐인데,
가급적 저런식으로 등록하여 준비해 놓는 것이 좋다.

728x90
한동안 종로 한복판의 SK에서 죽치면서 작업했었다.
아마도 작년 12월 말 즈음에서 기어 들어가 제대로 아는 것도
없이 이것 저것 하면서 혼자서 꿍짝 꿍짝 했던것 같은데,
벌써 3월에 접어 들었다.
그리고 이젠 이 SK내에서의 작업도 마무리되었다.

새로운 작업이 또 하나 떨어졌다.
이번에는 SKT.
무대는 종로에서 서울역인근으로 바뀌었다.
이번 작업도 사실 SPS 2007이긴 하지만, 이번에는 막판 끝나는 모드가 아닌
이제 막을 여는 곳으로 간다.
오늘 부터 시작이니깐.... 무엇을 어떻게 할지는 될지는 모르겠지만..
728x90

MOSS 2007을 설치 할 때 Administrators가 아닌 사용자로 등록 설치를 하는 경우
이벤트 로그 상에 문제가 발생한다.

이 이벤트 로그 상에 남은 내용을 분석하면 특정 컴포넌트의 CLSID를 볼 수 있다.
<CODE>
The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
{61738644-F196-11D0-9953-00C04FD919C1}
to the user NAOKO\spsadmin SID (S-1-5-21-3407409610-886466911-3668891564-1015).  This security permission can be modified using the Component Services administrative tool.
</CODE>
이 컴포넌트를 regedit를 이용해서 찾으면 다음과 같은 위치에서 발견 될 것이다.
이름을 확인해 본 결과 IIS WAMREG admin Service 이다.
이 서비스 내에 작업을 하는 중 spsadmin(이것이 User 권한만을 가진 MOSS 2007 관리자다.)가 이 컴포넌트에 대해 Local Activation 권한이 없어 실행되지 않았다고 한다.

이에 대한 권한 설정은 Component Service를 실행한 뒤 다음 위치에서 찾아보면 찾을 수 있다.
이 컴포넌트의 속성에 들어가서 속성 창에서 보안 부분을 열도록 한다.

Edit 버튼에 들어가서 해당 사용자를 추가 한뒤 Local Lauch와 Local Activation에 대해 권한을 허용해 준다.

728x90

+ Recent posts

728x90