2011-01-19 1 views
1

현재 비공개 토론 게시판을 표시하기 위해 셰어 포인트 웹 파트를 개발 중입니다. 토론은 제한된 사용자 만 볼 수 있습니다. 지금 허용 된 사용자는 다음과 같습니다. 사이트 모음 소유자, 토론 게시판 구성원, 토론 게시자 소유자.셰어 포인트 토론 게시판, 설정 및 규칙을 웹 파트에 복제하십시오.

내가 웹 파트의 보안을 설정하는 방법은 모든 사용자를 확보하고 토론 게시판에서 허용 된 사람에게 속하는지 확인하는 것입니다.

내 논리가 지금 작동하고있는 것 같지만 클라이언트의 관심사는 다음과 같습니다. 향후에 토론 게시판의 설정이나 보안이 변경되어 더 이상 코드를 수정하지 못하면 어떻게 될까요? 웹 파트의 설정과 보안이 토론 게시판에 동기화되도록 웹 파트의 내 생각은 토론 게시판의 설정과 보안을 복사하여 웹 파트에 적용하는 코드를 개발하는 대신 웹 파트의 설정과 보안을 토론 게시판에 바로 표시 할 것입니다. 제 질문은 지금 가능합니까?

첨부 파일을보고 내가 원하는 것을 더 잘 볼 수 있습니다.

First Image

Second Image

답변

0

안녕 "당신은 아무 권한이 없다"!

이 단어는 것 "DoesUserHavePermissions"를 않습니다 ... 여기 내 코드

try 
{ 
    string strListUrl = "http://MySite.com/List/MyDiscussion/AllItems.aspx"; 
    SPUser objCurrentUser = SPContext.Current.Web.CurrentUser; 
    SPSite objSite = new SPSite(SPContext.Current.Web.Url); 
    SPWeb objWeb = objSite.OpenWeb(); 
    SPList objList = objWeb.Lists[strListUrl]; 

    if(!objList.DoesUserHavePermissions(objCurrentUser,SPBasePermissions.EditListItems)){ 
     throw new UnauthorizedAccessException("You are not authorized to view this discussion!"); 
    } 
} 
catch(UnauthorizedAccessException uae){ 
    /// some exception handling codes here 
} 

@djeeg을 : 덕분 도움을! 너에게 1 표를! :)

2

웹 부분은 CheckPermissions 방법

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splist.checkpermissions.aspx

SPContext.List.CheckPermissions(SPBasePermissions.EditListItems); 

만 목록에 대한 권한을 설정할 수 있습니다이 방법을 사용해야합니다. 사용자가 디스플레이 아무것도, 또는라는 메시지 중 하나를 권한이하지 않는 경우

내가 문제를 해결 한

+0

SPBasePermissions.EditListItems를 사용하면 사용자가 자신의 역할 만 토론을 볼 수는 있지만 기여할 수는 없지만 목록을 볼 수 있습니까? 왜냐하면 나는 토론을 보도록 허용 된 특정 회원과 토론 게시판에 그룹을 가지고 있기 때문에 게시 할 수는 없습니다. –

+0

감사합니다. djeeg! 귀하의 대답은 정확하게 해결책은 아니지만 문제를 해결할 수있는 단서를 제공합니다. :) –