• 카테고리
    • 전체 글

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

'기술자료'에 해당되는 글 351건

  • 2007.11.05 간단한 SPList 권한 체크 방법
  • 2007.10.25 Sybase SQL 2005에서 Linked Server(연결된 서버)로 구성하기.
  • 2007.10.24 SPList 추가 또는 SPList 템플릿 Feature 추가 중에 발생되는 오류 중.
  • 2007.10.24 MOSS 내 가상 디렉토리내에 Output Cache 비활성화 하기. 2
  • 2007.10.15 C#에서 operator [] 만드는 방법
  • 2007.09.04 Windows 내 문서 폴더 위치 세팅하기.
  • 2007.08.17 콘텐츠 데이터베이스의 사이트 수는 사이트 콜렉션 수.
  • 2007.08.14 MOSS 2007 프로파일 리스트.

간단한 SPList 권한 체크 방법

기술자료/.NET 2007. 11. 5. 13:13

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.Add();
       ......
}


위의 방법대로 하기 위해서는 newItemGroup의 그룹을 찾아야 되는 문제가 있다.
이에 간단하게 해결하는 방법이 있는데 아래와 같다.

SPList list = SPContext.Current.Web.GetList(".....");
if(list.DoesUserHavePermissions(SPBasePermissions.AddListItems))
{
     // SPList에 글쓰기가 있으니.. 쓰는 권한에 관련된 처리를 여기에..
      SPListItem newItem = list.items.Add();
       ......
}

DoesUserHavePermissions 이 메소드 안에, SPBasePermissions 항목에
체크하고자 하는 권한들을 넣으면 된다.
만일 여러개의 권한 체크가 필요할 시에는 '&'로 연결해서 체크하면 된다.

if(list.DoesUserHavePermissions(SPBasePermissions.AddListItems | SPBasePermissions.EditListItems))
{
    // SPList에 글쓰기가 있으니.. 쓰는 권한에 관련된 처리를 여기에..
      SPListItem newItem = list.items.Add();
       ......
}



수정 : if(list.DoesUserHavePermissions(SPBasePermissions.AddListItems & SPBasePermissions.EditListItems)) 라고 썼던 부분을
if(list.DoesUserHavePermissions(SPBasePermissions.AddListItems | SPBasePermissions.EditListItems)) 로 수정합니다.
& -> |


 

728x90
블로그 이미지

하인도1

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

Sybase SQL 2005에서 Linked Server(연결된 서버)로 구성하기.

기술자료/ETC 2007. 10. 25. 17:30

사실 Oracle로는 이미 구성해봐서, 요즘은 개인기로 대략 붙인뒤,
즉시 OpenQuery를 시도하곤 한다.
그런데, 뜬금없이 출현한 Sybase에 뜬금없는 역습에....

일단, 이 Sybase를 연결하는 방법에 대해서 이리저리 Site를 누리다가,
좋은 글을 발견, 내 나름대로 정리해 본다.
[ 참고 글 링크 ]


1. Sybase 클라이언트 설치.
자신이 연결하려는 Sybase 데이터베이스 연결용 클라이언트를 구한다.
x86이든, x64든, 클라이언트들이 다 있으므로, 적절한 제품에 맞게 구하여 설치한다.

2. Data Service Name 구성하기.
클라이언트를 설치하면 Sybase ASE Data Source Administrator가 설치되게 되는데(DB 클라이언트 종류에 따라 이름이 조금씩을 다를 지도...) 이 프로그램을 실행한다.


시작 -> 모든 프로그램 -> Sybase -> Data Acess -> Sybase ASE Data Source Administrator 이다.

이 프로그램을 실행하면, Sybase Administrator 도구가 실행되는데,



여기서 Add 버튼을 클릭해서 Sybase 연결 관련된 정보를 넣는다.


중요한 부분은 Data Source Name 부분인데, 실제 SQL 2005 의 Linked Server 설정시에
이 정보를 사용하게 된다. 최종적으로 등록한 DSN이 정상적으로 연결되는지 Test Connection을 해주고, 확인이 되면 OK를 클릭해 저장한다.

2. Linked Server(연결된 서버) 구성하기.
먼저 SQL Management Studio 를 실행한다.
그리고 자신이 Linked Server를 구성하고자 하는 DB 서버에 연결한다.
DB 서버에 정상적으로 로그인 되었으면,


왼편의 트리를 펼쳐서 연결된 서버라는 항목에서 오른쪽 버튼을 클릭해서 새 연결된 서버(N)를 선택한다. 그러면 아래와 같은 설정 화면이 나오게 된다.


설정 화면에서 다음과 같이 정보를 넣는다.
연결된 서버(N) 에는 이 Linked Server의 이름을 넣는다. SQL에서 OpenQuery 쓸 때 이름이므로 원하는대로 알아보기 쉽게 적는다. 대표이름이므로 당근, 영/숫자로만 적는 것을 권장한다.
공급자(P) 에는 Sybase OLEDB를 선택한다. 만일 이 사항이 없으면, 다시 Sybase 설치 작업을 검토해주어야 한다. 이게 없으면 만들수 없다고 판단하는 것이 옳다.
제품이름(U) / 데이터 원본(D) 에는 앞서 Sybase Administrator 도구에서 만든 DSN 이름을 넣는다.

이번엔 왼쪽 메뉴에서 보안을 선택한 뒤, Sybase에 접속할 때 쓸 계정과 암호를 입력한다.



맨마지막 메뉴 - 서버 옵션을 선택한 뒤, 아래 그림과 같이 설정하고 확인한다.

마지막으로 이 연결 Provider 설정을 하면 된다.
설정 방법은 앞서 만든 Linked Server 들 목록 윗쪽의 공급자 항목을 펼치면 볼 수 있다.
해당 항목의 속성에 들어간다.


속성에 들어가서 아래 그림과 같이 Inprocess 허용을 선택한다.



이제.. 해당 Linked Server에 오픈 쿼리를 때려본다!

SELECT * FROM OPENQUERY(TESTLNK, 'SELECT * FROM tb_test')


728x90
블로그 이미지

하인도1

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

SPList 추가 또는 SPList 템플릿 Feature 추가 중에 발생되는 오류 중.

기술자료/Web 2007. 10. 24. 11:54

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.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)

위치: System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler,
 SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
위치: System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)
위치: System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result,
 String methodName, Boolean sendToPipe)    

위치: System.Data.SqlClient.SqlCommand.ExecuteNonQuery()    

위치: Microsoft.SharePoint.Utilities.SqlSession.ExecuteNonQuery(SqlCommand command)

 

이 내용을 확인해 본 결과 List Template 안의 Event Add 하는 부분에서 아래와 같은 부분을 확인 할 수 있었습니다.

List Template 의 Element.xml 을 살펴본 결과 아래와 같습니다.

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">

  <!-- 리스트 템플릿 정의부분 -->

  <ListTemplate

        Name="FreeTalk_Board"

        Type="8000"

        BaseType="0"

        OnQuickLaunch="TRUE"

        SecurityBits="12"

        Sequence="392"

        DisplayName="FreeTalk_Board"

        Description="FreeTalk_Board"

        Image="/_layouts/images/itann.gif"       

        />

  <!-- 이벤트 리시버 정의부분 -->

  <Receivers ListTemplateId="8000">

    <Receiver>

      <Name>CollectBoardEventReceivers</Name>

      <Type>ItemAdded</Type>

      <SequenceNumber>50000</SequenceNumber>

      <Assembly>SKT.TSquare.SPS.FreeTalk, Version=1.0.0.0, Culture=neutral, PublicKeyToken=388b774ba96c947e</Assembly>

      <Class>SKT.TSquare.SPS.FreeTalk.CollectBoardEventReceivers</Class>

      <Data />

      <Filter />

    </Receiver>

    <Receiver>

      <Name>CollectBoardEventReceivers</Name>

      <Type>ItemDeleting</Type>

      <SequenceNumber>50000</SequenceNumber>

      <Assembly>SKT.TSquare.SPS.FreeTalk, Version=1.0.0.0, Culture=neutral, PublicKeyToken=388b774ba96c947e</Assembly>

      <Class>SKT.TSquare.SPS.FreeTalk.CollectBoardEventReceivers</Class>

      <Data />

      <Filter />

    </Receiver>  

  </Receivers>

</Elements>

 

일단  <Receivers> .... </Receivers> 부분에 있는 내용을 모두 삭제해 보고 리스트를 추가해 본 결과,

위의 오류가 발생하지 않았습니다.

이번에 다시 추가해서 적용해 본 결과 오류가 재발하였습니다.

그래서 이번에는 각 Event의 이름을 다르게 적용해 보았습니다.

 

   ....

  <Receivers ListTemplateId="8000">

    <Receiver>

      <Name>FTEventItemAdded</Name>

      <Type>ItemAdded</Type>

      <SequenceNumber>50000</SequenceNumber>

      <Assembly>SKT.TSquare.SPS.FreeTalk, Version=1.0.0.0, Culture=neutral, PublicKeyToken=388b774ba96c947e</Assembly>

      <Class>SKT.TSquare.SPS.FreeTalk.CollectBoardEventReceivers</Class>

      <Data />

      <Filter />

    </Receiver>

    <Receiver>

      <Name>FTEventItemUpdated</Name>

      <Type>ItemDeleting</Type>

      <SequenceNumber>50000</SequenceNumber>

      <Assembly>SKT.TSquare.SPS.FreeTalk, Version=1.0.0.0, Culture=neutral, PublicKeyToken=388b774ba96c947e</Assembly>

      <Class>SKT.TSquare.SPS.FreeTalk.CollectBoardEventReceivers</Class>

      <Data />

      <Filter />

    </Receiver>  

  </Receivers>

   ....

 

확인해 본 결과 위와 같이 변경하니, 그 이상의 오류는 발생하지 않았습니다.

그 이후에는 이름이 동일해도 오류가 발생하지 않았습니다.

초기에 리스트 템플릿 상에서 동일한 이름으로 등록할 때 발생되는 오류로 생각됩니다.

728x90
블로그 이미지

하인도1

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

MOSS 내 가상 디렉토리내에 Output Cache 비활성화 하기.

기술자료/Web 2007. 10. 24. 09:54
MOSS로 구성한 사이트에, IIS 내 가상 디렉토리로 추가 구성을 한 경우,
간혹 Output Cache가 정상적으로 동작하지 않는 경우가 있다.
그런 경우 아래와 같은 이벤트가 계속 쌓이게 된다.
이벤트 형식: 오류
이벤트 원본: Office SharePoint Server
이벤트 범주: 게시 캐시
이벤트 ID: 5785
날짜:  2007-10-01
시간:  오전 8:36:03
사용자:  N/A
컴퓨터: PORTAL
설명:
출력 캐싱에 대한 게시 사용자 지정 문자열 처리기에 연결할 수 없습니다. IIS 인스턴스 ID는 '677781685'이고 URL은 'http://portal/TestSite/ServiceFrom.aspx'입니다.
자세한 정보는 http://go.microsoft.com/fwlink/events.asp에 있는 도움말 및 지원 센터를 참조하십시오.

정확히 확인하진 않았지만, 위와 같은 현상이 발생되는 가상 디렉토리는 보통 SPS 쪽이 NTLM이고, 가상 디렉토리 부분이 Anonymous 형태로, 인증 자체가 아예 틀린 경우다.
그런 경우 SPS 쪽의 Output Cache 프로필 중에 Anonymous 대응용 프로필이 없어 발생하는 것으로 생각된다.

이 경우 처리 방법은 해당 가상 디렉토리 내에 web.config를 별도로 생성해서 아래와 같이 처리해 주면 된다. [ 굵은 색 부분을 추가해 주면 된다. ] 
<connectionStrings/>
 <system.web>
    <httpModules>
      <remove name="OutputCache"/>
      <remove name="PublishingHttpModule"/>
    </httpModules>
   
  <!--
            컴파일된 페이지에 디버깅 기호를 삽입하려면
            compilation debug="true"로 설정하십시오. 이렇게 하면
            성능에 영향을 주므로 개발하는 동안에만 이 값을
            true로 설정하십시오.
        -->
  <compilation debug="false">



물론 정확하게는 anonymous에 대응되는 Cache 프로필을 만드는 것이 더욱 좋긴 하지만, 설정 처리 방법을 잘 모르니....
후에 Cache에 대해서 더 자세히 알게 되면 추가하도록 하겠다.

728x90
블로그 이미지

하인도1

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

C#에서 operator [] 만드는 방법

기술자료/CPP 2007. 10. 15. 16:35
배열형태의 클래스를 만들다 보면, 항상 인덱스 오퍼레이터를 가지고 있다.
C++에서 종종 이 operator를 오버라이딩해서 구현하곤 했는데,
내가 기억하는 C++ operator 처리 방법때로는 계속 에러를 뿜어 댔다.
문법을 정확히 기억하지 못해 헤매다가,
MS에서 제공하는 csharp language specification.doc 라는 파일을 구해서
간신히 찾아서 해결했다.

C#에 있는 Property 문법을 사용해서 구현하면 operator [] 를 생각보다 간단하게
구현할 수 있었다.

public object this[string sKey]
{
     get
     {
          return this.GetData(sKey);
      }
      set
      {
          this.SetData(sKey, value);
      }
}


대략 코드를 보면 알 수 있긴 하지만,
키 코드는 this 이 부분이다. 즉 보통 배열의 인덱스를 사용하는 방법을 보게 되면,
 KK[i] = 44; 

라는 형식으로 KK 부분이 바로 해당 클래스의 변수 자체를 가르키게 된다. 그러므로 operator
에서 this를 쓴다. 그리고 난 뒤 , [  ] 안쪽에 무슨 값으로 구분하는지에 따라,
해당하는 변수를 구성해주면 된다.
만일 숫자인 경우 [int nIndex] 형식으로 써주면 되고, 지금 필자 같이 문자열이라면
[string sKey] 이런 식으로 쓰면 된다.

나머지는 C#의 get / set 의 구현 방법에 맞게 원하는 코드를 넣기만 하면 된다.


728x90
블로그 이미지

하인도1

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

Windows 내 문서 폴더 위치 세팅하기.

기술자료/OS 2007. 9. 4. 10:06
서두 :
보통 윈도우를 설치하면, C:\Documents and Settings\계정이름 아래에 자신만이 사용하는 각종 폴더들이 생성된다.
보통 내 문서나, 바탕화면 등등이 이 쪽으로 설정되게 된다.

문제점 :
그런데, 내 문서와 같은 내용을 D Drive 같은 공통 폴더들에 저장하는 사람들이 있다. 일단 나 부터가 그렇게 한다. 그런데, 매번 윈도우 설치 후, 내 문서를 열고, 그 안의 속성에서 폴더 이동을 요청하면 이동이 되기는 하는데, 매번 이짓하는 것도 쉽지만은 않다.
더욱이 내 문서 뿐만 아니라, 내 그림, 내 비디오 등, 각종 설정 값들을 옮기려면,
이 또한 많은 시간을 소요하게 된다.

해결 방법 :
의외로 해결방법은 간단했다. 자신의 설정 값이 담긴 레지스트리를 수정하면 된다.
보통 로그인 한 사용자의 설정 값은 모두 HKEY_CURRENT_USER 안에 담기게 된다.
이 내용 중, HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
안에 있는 값을 수정하면 된다.

문제는 이 안의 모든 데이터는 Binary 값이므로, 직접 레지스트리 편집기에서 수정한다.
현재 내 레지스트리 설정은 아래와 같다.
(D:\MyData\Document 아래에 각종 설정 관련 데이터가 담겨 있다. )

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
"Favorites"=hex(2):44,00,3a,00,5c,00,4d,00,79,00,44,00,61,00,74,00,61,00,5c,00,\
  46,00,61,00,76,00,6f,00,72,00,69,00,74,00,65,00,73,00,00,00
"Personal"=hex(2):44,00,3a,00,5c,00,4d,00,79,00,44,00,61,00,74,00,61,00,5c,00,\
  44,00,6f,00,63,00,75,00,6d,00,65,00,6e,00,74,00,73,00,00,00
"My Pictures"="D:\\MyData\\Documents\\My Pictures"
"My Music"=hex(2):44,00,3a,00,5c,00,4d,00,79,00,44,00,61,00,74,00,61,00,5c,00,\
  44,00,6f,00,63,00,75,00,6d,00,65,00,6e,00,74,00,73,00,5c,00,4d,00,79,00,20,\
  00,4d,00,75,00,73,00,69,00,63,00,00,00
"My Video"=hex(2):44,00,3a,00,5c,00,4d,00,79,00,44,00,61,00,74,00,61,00,5c,00,\
  44,00,6f,00,63,00,75,00,6d,00,65,00,6e,00,74,00,73,00,5c,00,4d,00,79,00,20,\
  00,56,00,69,00,64,00,65,00,6f,00,73,00,00,00
728x90
블로그 이미지

하인도1

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

콘텐츠 데이터베이스의 사이트 수는 사이트 콜렉션 수.

기술자료/.NET 2007. 8. 17. 10:36

지금 작업 중에, MOSS 2007 안에 있는 콘텐츠 데이터베이스를 각 사이트 콜렉션별로
나누어 만드는 작업이, 콘텐츠 데이터베이스 갯수 : 사이트 콜렉션 갯수를 1:1로 맞추어 진행하고 있다.

그런데, 재미있는 것은 만든 사이트 콜렉션 내에 사이트를 무한대 만들어도
콘텐츠 데이터 베이스에서는 무조건 현재 사이트 수를 1로 잡고 있었다.

이는 즉, 이 콘텐츠 데이터베이스 입장에서는 하위 사이트 수는 전혀 관계 없고
오로지 사이트 콜렉션이 몇개인지에 달려있다고 볼 수 있다.
만일 사이트 콜렉션 수가 콘텐츠 데이터베이스에 1개만 달렸다면,
콘텐츠 데이터베이스는 죽었다 깨어나도 사이트 콜렉션을 1개만 달고,
그 하위의 사이트는 무한대로 달 수 있게 된다.

728x90
블로그 이미지

하인도1

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

MOSS 2007 프로파일 리스트.

기술자료/.NET 2007. 8. 14. 16:40
MOSS 2007을 설치하면 기본적으로 설치되는 프로필의 목록이다.
이 목록을 이용하면, 원하는 이름 별로 찾을 수 있다.

한글 이름 Static Name
계정 이름 AccountName
이름 FirstName
성 LastName
전체 이름 PreferredName
회사 전화 WorkPhone
사무실 Office
부서 Department
직함 Title
관리자 Manager
설명 AboutMe
개인 사이트 PersonalSpace
그림 PictureURL
사용자 이름 UserName
빠른 연결 QuickLinks
웹 사이트 WebSite
공용 사이트 리디렉션 PublicSiteRedirect
보조 관리자 SPS-Dotted-line
피어 SPS-Peers
업무 SPS-Responsibility
기술 SPS-Skills
이전 프로젝트 SPS-PastProjects
취미 SPS-Interests
학교 SPS-School
주소 SPS-SipAddress
생일 SPS-Birthday
내 사이트 업그레이드 SPS-MySiteUpgrade
목록 제안 안 함 SPS-DontSuggestList
프록시 주소 SPS-ProxyAddresses
고용 날짜 SPS-HireDate
마지막으로 동료를 추가한 날짜 SPS-LastColleagueAdded
Outlook Web Access URL SPS-OWAUrl
리소스 포리스트 SID SPS-ResourceSID
리소스 포리스트 계정 이름 SPS-ResourceAccountName
마스터 계정 이름 SPS-MasterAccountName
비서 Assistant
회사 전자 메일 WorkEmail
휴대폰 CellPhone
팩스 Fax
집 전화 HomePhone

728x90
블로그 이미지

하인도1

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

  • «
  • 1
  • ···
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • ···
  • 44
  • »
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

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

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015-2025 Socialdev. All Rights Reserved.

Copyright © 2015-2025 Socialdev. All Rights Reserved.

티스토리툴바