<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6558391903200367678</id><updated>2024-09-27T15:42:55.589-07:00</updated><category term="SP2010"/><category term="SharePoint"/><category term="FBA"/><category term="InternalName"/><category term="Login"/><category term="Search"/><category term="Secure Store Service"/><category term="Security"/><category term="field"/><category term="계정"/><title type='text'>류경석의 SharePoint</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://teamplace.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://teamplace.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>류경석</name><uri>http://www.blogger.com/profile/01431782672269467193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihdQxYJjlFKLzAEqJ3mWbUlBkX-Z9aerVmNCPGFCEjdPvFnyIAeTLKLMBmiFCf1HnxqtOAE2EHMhWuOFMmjJlQB5Sy0ngHms8FXFjz13OjgVgpht44gE2iwpaUfRMsxuM/s220/narzis.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6558391903200367678.post-5851424071009234767</id><published>2012-07-16T05:40:00.000-07:00</published><updated>2012-07-17T18:32:47.442-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><category scheme="http://www.blogger.com/atom/ns#" term="SP2010"/><category scheme="http://www.blogger.com/atom/ns#" term="계정"/><title type='text'>SharePoint 서비스 계정은 어떤 걸 사용해야 하나?</title><content type='html'>SharePoint라는 제품이 팜을 이루어 여러대의 머신에서 동작 하는 솔루션이다 보니 Setup시에 서비스용 계정들을 설정해야 하는 경우가 생깁니다. &lt;br /&gt;
처음으로 SharePoint를 설치 하는 분들의 경우엔 솔루션의 특성을 이해 하고 진행 하기 보단 일단 Setup을 해보고 설치 결과를 보고 싶어 하는 성향이 많아서 일단 Setup.exe를 돌리고 보는데요 ㅎㅎ - 이런 경우엔 &quot;단독 실행&quot;으로 설치 하시는 게 가장 효과적입니다.- &lt;br /&gt;
&lt;br /&gt;
오늘은 기본으로 돌아가 SharePoint Setup에 필요한 계정에 대해서 확인해 보도록 하겠습니다. &lt;br /&gt;
SharePoint 설치를 제대로 하기 위해서는 다음과 같은 계정과 권한이 Active Directory, SQL Server, SharePoint 멤버 서버에 필요 합니다. &lt;br /&gt;
&lt;br /&gt;
아래에 나오는 계정의 이름은 제가 임의로 결정한 것입니다. 계정의 이름 규칙이 있다면 적절히 바꿔 사용 하시면 됩니다. &lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;SQL Server &lt;/b&gt;&lt;b&gt;서비스 계정 : SVC_SQL&lt;/b&gt; &lt;br /&gt;
SQL서버 서비스를 돌리는 계정입니다. SQL 서비스 계정을 다른 Windows서비스와 같이 System, Network Service, Local System 계정으로 돌릴 수 있지만 명시적으로 도메인 계정을 사용 하는 게 좋습니다. SharePoint서버와 다른 서버에서 SQL 서버가 돌아간다면 도메인 계정을 필수로 사용해야 합니다. &lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Setup &lt;/b&gt;&lt;b&gt;사용자 계정(사람) : SP_Admin&lt;/b&gt; &lt;br /&gt;
SharePoint 설치 패키지를 실행해서 SharePoint를 깔고 설정을 할 사람이 사용할 계정입니다. &lt;br /&gt;
Setup이 진행되는 동안 SQL database에 접근 하고 설치 하는 서버에 로컬 그룹을 만들기도 합니다. 그래서 SP_Admin계정은 SQL서버에 securityadmin과 dbcreator 권한이 있어야 하고 설치 하는 서버의 로컬 Administrators 그룹에 속해 있어야 합니다. 이 작업은 자동으로 되지 않기 때문에 SQL 서버에서 직접 권한을 할당하고 로컬 Administrators에다 넣어 줘야 합니다. 한가지 중요한 점은 Domain Admins 같은 도메인의 최고 권한이 필요 한 것이 아니라는 점입니다. 도메인 그룹은 Domain Users 그룹에만 있어도 됩니다. &lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Server Farm &lt;/b&gt;&lt;b&gt;계정 : SP_Farm&lt;/b&gt; &lt;br /&gt;
설치가 진행되는 동안 SP_Admin 계정으로 SharePoint 팜을 만들게 되는 데 이 팜은 SQL 서버의 DB형태로 만들어 집니다. 설치 이후 SharePoint가 SQL서버의 SharePoint 팜 database에 접근할 때 사용하는 서비스 계정이 SP_Farm입니다. 주로 중앙관리 사이트를 통해 이루어 지는 대부분의 작업이 이 서비스 계정을 통해 접근 하게 됩니다. IIS의 SharePoint 중앙관리 사이트 application pool 의 identity로 설정 되고 SharePoint Timer 서비스 계정도 이 계정으로 설정됩니다. SharePoint 가 깔리는 모든 서버의 로컬 Administrators 그룹에 이 SP_Farm 계정이 포함 되어 있어야 합니다. &lt;br /&gt;
이 작업은 &quot;SharePoint 제품 설정 마법사(SharePoint Products Configuration Wizard)&quot;가 설치 이후 돌아 갈 때 자동으로 됩니다. &lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;웹 응용프로그램과 서비스 응용프로그램 Application Pool 계정 : SP_Service&lt;/b&gt; &lt;br /&gt;
각 웹 응용프로그램은 IIS의 application pool에서 돌아 가게 되는데 이 application pool의 identity가 SP_Service 같은 도메인 사용자 계정입니다. 이 계정은 SQL Server의 SharePoint content database 에 접근 할 때 사용 됩니다. &lt;br /&gt;
Office Web App이나 Search같은 서비스 응용프로그램도 웹 응용프로그램의 일종으로써 도메인 사용자 계정이 설정된 application pool에서 돌아가게 됩니다. 사용된 계정은 SharePoint 응용프로그램이 만들어 질 때 권한이 자동으로 할당 되게 됩니다. &lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;검색 Crawler (indexer) 계정 : SP_Crawl&lt;/b&gt; &lt;br /&gt;
검색 Crawler 계정은 SharePoint 콘텐츠를 인덱싱 하는데 사용됩니다. 이 계정은 모든 SharePoint 콘텐츠에 &quot;모두 읽기&quot; 권한이 부여 됩니다. 만약 검색 원본이 SharePoint 콘텐츠가 아니라 공유 폴더 같은 경우엔 SP_Crawler 계정에 읽기 권한을 수동으로 할당 해 줘야 합니다. &lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;사용자 프로필 동기화 계정 : SP_Sync&lt;/b&gt; &lt;br /&gt;
SharePoint 사용자 프로필 동기화 서비스는 Active Directory와 SharePoint간에 프로필 속성을 동기화 하는데 사용됩니다. 이 계정은 계정 정보를 읽어 올 때 도메인 수준에서 &quot;디렉터리 변경 사항 복제(Replicate Directory Changes)&quot; 권한이 필요 합니다. 그리고 이 서비스 계정이 팜 관리자 그룹이나 사용자 프로필 동기화 관리자 그룹에 들어 있어야 합니다. &lt;br /&gt;
만약 도메인의 NETBIOS이름과 도메인 이름이 다르다면 cn=configuration 컨테이너에도 &quot;디렉터리 변경 사항 복제&quot; 권한이 필요 합니다.  &lt;br /&gt;
그리고 만약 SharePoint 서버에서 AD로 사용자 사진 속성을 AD의 ThumbnailPhoto같은 속성으로 overwrite해야 한다면 해당 AD개체의 ThumbnailPhoto에는 read권한 밖에 주어지지 않으므로 명시적으로 write권한을 추가 해 줘야 합니다. &lt;br /&gt;
&lt;br /&gt;
이렇게 SharePoint 2010 에서 사용되는 계정을 정리 해 보았습니다. 뭐 Domain Admins에 들어 있는 계정 하나 만들어서 몽땅 그 계정 하나로 설정 해 버리면야 문제가 없어 보이긴 합니다만… 첫 번째 보안에 위험 하겠지요. 두 번째로는 그 계정 하나가 문제가 발생하면 SharePoint 전체 서비스가 중단되는 사태가 벌어 질 수도 있을 것입니다.  &lt;br /&gt;
정확히 SharePoint 서비스가 어떤 작업을 하는지 확인하고 어떤 계정이 어떤 권한을 가져야 하는지 확인이 필요 할 것입니다.</content><link rel='replies' type='application/atom+xml' href='http://teamplace.blogspot.com/feeds/5851424071009234767/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://teamplace.blogspot.com/2012/07/sharepoint.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/5851424071009234767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/5851424071009234767'/><link rel='alternate' type='text/html' href='http://teamplace.blogspot.com/2012/07/sharepoint.html' title='SharePoint 서비스 계정은 어떤 걸 사용해야 하나?'/><author><name>류경석</name><uri>http://www.blogger.com/profile/01431782672269467193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihdQxYJjlFKLzAEqJ3mWbUlBkX-Z9aerVmNCPGFCEjdPvFnyIAeTLKLMBmiFCf1HnxqtOAE2EHMhWuOFMmjJlQB5Sy0ngHms8FXFjz13OjgVgpht44gE2iwpaUfRMsxuM/s220/narzis.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6558391903200367678.post-6678325241036737333</id><published>2011-04-04T20:15:00.001-07:00</published><updated>2011-04-04T20:20:17.431-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Search"/><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint"/><category scheme="http://www.blogger.com/atom/ns#" term="SP2010"/><title type='text'>Your search cannot be completed because this site is not assigned to an indexer.</title><content type='html'>&lt;h3&gt;증상&lt;/h3&gt; &lt;p&gt;Search 서비스에 API를 통해 검색을 할 때 제목과 같은 에러가 발생 하는 경우 입니다.&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TZqJWqYnpjI/AAAAAAAAA4E/iVeX3W62NVQ/s1600-h/image%5B2%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TZqJXfrzNHI/AAAAAAAAA4I/mEmHubKLMo4/image_thumb.png?imgmax=800&quot; width=&quot;244&quot; height=&quot;217&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;원인&lt;/h3&gt; &lt;p&gt;Search설정에는 문제없이 되는 것 처럼 보이는데요 이럴 땐 일단 Conent DB의 Search 서버 설정이 제대로 되어 있는지 확인 해야 합니다.&lt;/p&gt; &lt;h3&gt;해결&lt;/h3&gt; &lt;p&gt;Central Administratoion &amp;gt; Application Management &amp;gt; Manage content database &amp;gt; &lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TZqJX9u0YII/AAAAAAAAA4M/D93u_ezYEwk/s1600-h/image%5B6%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TZqJYRQabvI/AAAAAAAAA4Q/C3WmMoSu-Ac/image_thumb%5B2%5D.png?imgmax=800&quot; width=&quot;644&quot; height=&quot;119&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;만약 “Searh Server” 설정이 비활성화 되어 있으면 Central Administration &amp;gt; System Settings &amp;gt; Manage services on server 에서 SharePoint Foundation Help Searh 서비스가 제대로 시작되어 있는지 확인 해 보시기 바랍니다.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://teamplace.blogspot.com/feeds/6678325241036737333/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://teamplace.blogspot.com/2011/04/your-search-cannot-be-completed-because.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/6678325241036737333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/6678325241036737333'/><link rel='alternate' type='text/html' href='http://teamplace.blogspot.com/2011/04/your-search-cannot-be-completed-because.html' title='Your search cannot be completed because this site is not assigned to an indexer.'/><author><name>류경석</name><uri>http://www.blogger.com/profile/01431782672269467193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihdQxYJjlFKLzAEqJ3mWbUlBkX-Z9aerVmNCPGFCEjdPvFnyIAeTLKLMBmiFCf1HnxqtOAE2EHMhWuOFMmjJlQB5Sy0ngHms8FXFjz13OjgVgpht44gE2iwpaUfRMsxuM/s220/narzis.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_om2a49QhjVk/TZqJXfrzNHI/AAAAAAAAA4I/mEmHubKLMo4/s72-c/image_thumb.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6558391903200367678.post-401554980552312379</id><published>2011-04-03T06:03:00.001-07:00</published><updated>2011-04-03T14:27:09.916-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="field"/><category scheme="http://www.blogger.com/atom/ns#" term="InternalName"/><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint"/><title type='text'>Field Name, InternalName, StaticName, DisplayNane, _x0020_</title><content type='html'>&lt;p&gt;Custom Field정의에 대해서 알아 보겠습니다.&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Courier New&quot;&gt;Custom Field를 정의 할 때 필수 attribute는 Name, Type, ID 입니다.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Courier New&quot;&gt;ID는 “{}”로 둘러 싸인 GUID값이고, Type은 SharePoint에서 사용 가능한 Type입니다. &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Courier New&quot;&gt;MSDN의 &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/aa979575.aspx&quot; target=&quot;_blank&quot;&gt;File element reference&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;&lt;div style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;Field&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;{1511BF28-A787-4061-B2E1-71F64CC93FD5}&quot;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;Name&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;DateOpened&quot;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;DisplayName&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;Date Opened&quot;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;Type&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;DateTime&quot;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;Format&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;DateOnly&quot;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;Required&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;FALSE&quot;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;Group&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;Financial Columns&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;Default&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;[today]&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;Default&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;Field&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;p&gt;Field를 customize할 때 가장 유의 해야 할 부분은 바로 Name 속성입니다.&lt;/p&gt;&lt;br /&gt;
&lt;h3&gt;Name&lt;/h3&gt;&lt;br /&gt;
&lt;p&gt;Name은 SPField 개체를 통해 &lt;strong&gt;InternalName&lt;/strong&gt; 속성로 노출 하는 값으로써 Site내에서 Unique 하고 0-9 숫자와 알파벳 글자만을 사용 할 수 있습니다. 만약 다른 캐릭터가 오면 _x0000_ 형태로 인코딩을 해버립니다. 즉, “File Type” 이라는 이름은 “File_x0020_Type”으로 바꾸는 것이죠. 이건 한글 필드이름일 때는 더욱 문제가 됩니다. 디코딩을 해보기 전까지는 전혀 어떤 글자인지 모를 이름이 “InternalName”에 들어가 있는 것입니다. 그리고 마지막으로 주의해야 할 것은 이름의 글자수가 32자리 라는 것입니다. 이상 넘어가는 글자는 그냥 잘라 먹습니다.&lt;/p&gt;&lt;br /&gt;
&lt;h3&gt;StaticName&lt;/h3&gt;&lt;br /&gt;
&lt;p&gt;StaticName은 별도로 지정하지 않으면 Name 값이 동일하게 들어 갑니다. InternalName은 읽기 전용이라 field 생성 후 변경이 불가능 하지만 이 StaticName은 API를 통해 변경이 가능합니다. 이 속성은 SPFieldCollection.GetField()&amp;nbsp; 메서드에서 해당 field를 찾아 올 때 InternalName과 함께 사용 할 수 있습니다.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TZhwNB3LuAI/AAAAAAAAA38/5K97nWUzB6g/s1600-h/image%5B2%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TZhwN_dHOmI/AAAAAAAAA4A/DWwhLqVqA14/image_thumb.png?imgmax=800&quot; width=&quot;244&quot; height=&quot;112&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;h3&gt;DisplayName&lt;/h3&gt;&lt;br /&gt;
&lt;p&gt;DisplayName은 UI에서 노출 되는 field 이름입니다. 당연히 공백을 포함 모든 캐릭터를 사용 할 수 있습니다. &lt;/p&gt;&lt;br /&gt;
&lt;h3&gt;결론&lt;/h3&gt;&lt;br /&gt;
&lt;p&gt;Name 속성은 무조건 공백없는 알파벳, 숫자로 만들어야하고 32자를 넘지 말아야 합니다. StaticName은 별도록 지정 말고 Name과 같이 사용하는 것이 좋습니다.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://teamplace.blogspot.com/feeds/401554980552312379/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://teamplace.blogspot.com/2011/04/field-name-internalname-staticname.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/401554980552312379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/401554980552312379'/><link rel='alternate' type='text/html' href='http://teamplace.blogspot.com/2011/04/field-name-internalname-staticname.html' title='Field Name, InternalName, StaticName, DisplayNane, _x0020_'/><author><name>류경석</name><uri>http://www.blogger.com/profile/01431782672269467193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihdQxYJjlFKLzAEqJ3mWbUlBkX-Z9aerVmNCPGFCEjdPvFnyIAeTLKLMBmiFCf1HnxqtOAE2EHMhWuOFMmjJlQB5Sy0ngHms8FXFjz13OjgVgpht44gE2iwpaUfRMsxuM/s220/narzis.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_om2a49QhjVk/TZhwN_dHOmI/AAAAAAAAA4A/DWwhLqVqA14/s72-c/image_thumb.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6558391903200367678.post-8094962883341484193</id><published>2011-04-01T04:37:00.001-07:00</published><updated>2011-04-01T04:37:28.002-07:00</updated><title type='text'>the field with ID defined in feature was found in the current site collection or in a sub site</title><content type='html'>&lt;h3&gt;증상&lt;/h3&gt; &lt;p&gt;VS에서 Field를 배포 하려 할 때 첫번째엔 문제가 없는데 두번째 부터 아래와 같이 에러가 나면서 Feature Activation에 실패 하는 경우가 있습니다.&lt;/p&gt; &lt;p&gt;‘Error occurred in deployment of step ‘Activate Features’: the field with ID &amp;lt;New GUID&amp;gt; defined in feature &amp;lt;FeatureGUID&amp;gt; was found in the current site collection or in a sub site.&lt;/p&gt; &lt;h3&gt;원인&lt;/h3&gt; &lt;p&gt;원인은 Field 선언시에 ID값을 선언 할 때 &quot;{}” 로 둘러 싸지 않아서 그렇습니다.&lt;/p&gt;&lt;pre&gt;&amp;lt;Field ID=&quot;A409C79A-F1C3-43B9-A602-160FF81E0AF8&quot; Name=&quot;UserID&quot; Type=&quot;Text&quot; /&amp;gt;&lt;/pre&gt;&lt;pre&gt;VS의 버그에 가깝습니다.&lt;/pre&gt;&lt;br /&gt;&lt;h3&gt;해결&lt;/h3&gt;&lt;pre&gt;해결 책은 일단 ID값을 “{}”로 감싸고 해당 솔루션 패키지를 Retract(취소)한 후 VS를 다시 켠 후 다시 Deploye(배포) 하면 해결 됩니다.&lt;/pre&gt;&lt;br /&gt;&lt;h3&gt;참고&lt;/h3&gt;&lt;pre&gt;&lt;a href=&quot;http://support.microsoft.com/kb/2022443&quot;&gt;http://support.microsoft.com/kb/2022443&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;  </content><link rel='replies' type='application/atom+xml' href='http://teamplace.blogspot.com/feeds/8094962883341484193/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://teamplace.blogspot.com/2011/04/field-with-id-defined-in-feature-was.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/8094962883341484193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/8094962883341484193'/><link rel='alternate' type='text/html' href='http://teamplace.blogspot.com/2011/04/field-with-id-defined-in-feature-was.html' title='the field with ID defined in feature was found in the current site collection or in a sub site'/><author><name>류경석</name><uri>http://www.blogger.com/profile/01431782672269467193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihdQxYJjlFKLzAEqJ3mWbUlBkX-Z9aerVmNCPGFCEjdPvFnyIAeTLKLMBmiFCf1HnxqtOAE2EHMhWuOFMmjJlQB5Sy0ngHms8FXFjz13OjgVgpht44gE2iwpaUfRMsxuM/s220/narzis.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6558391903200367678.post-1365486830588656326</id><published>2011-02-09T18:15:00.000-08:00</published><updated>2011-02-09T18:18:20.986-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="FBA"/><category scheme="http://www.blogger.com/atom/ns#" term="Login"/><category scheme="http://www.blogger.com/atom/ns#" term="SP2010"/><title type='text'>SharePoint 2010 Form Based Authentication 및 Custom Login Page</title><content type='html'>&lt;p&gt;SharePoint 2010 에서 FBA를 구성 하는 방법과 Custom Login Page를 만드는 방법을 정리 해 봤습니다.&lt;/p&gt; &lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;598&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;131&quot;&gt; &lt;p&gt;1. 중앙 관리 사이트 Membership, Role Provider설정하기&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;465&quot;&gt; &lt;p&gt;중앙 관리 사이트 web.config 파일을 열어 아래와 같이 추가 하여 수정한다.  &lt;p&gt;&amp;lt;configuration /&amp;gt;안쪽에  &lt;p&gt;&amp;lt;connectionStrings&amp;gt;  &lt;p&gt;&amp;lt;add name=&quot;SQLConnectionString&quot; connectionString=&quot;data source=SQLServerName;Integrated Security=SSPI;Initial Catalog=aspnetdb&quot; /&amp;gt;  &lt;p&gt;&amp;lt;/connectionStrings&amp;gt;  &lt;p&gt;&amp;lt;system.web&amp;gt;&amp;lt;/system.web&amp;gt; 사이에  &lt;p&gt;&amp;lt;roleManager defaultProvider=&quot;AspNetWindowsTokenRoleProvider&quot; enabled=&quot;true&quot; cacheRolesInCookie=&quot;false&quot;&amp;gt;  &lt;p&gt;&amp;lt;providers&amp;gt;  &lt;p&gt;&amp;lt;add connectionStringName=&quot;SQLConnectionString&quot; applicationName=&quot;/&quot; description=&quot;Stores and retrieves roles from SQL Server&quot; name=&quot;SQL-RoleManager&quot; type=&quot;System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&quot; /&amp;gt;  &lt;p&gt;&amp;lt;/providers&amp;gt;  &lt;p&gt;&amp;lt;/roleManager&amp;gt;  &lt;p&gt;&amp;lt;membership defaultProvider=&quot;SQL-MembershipProvider&quot;&amp;gt;  &lt;p&gt;&amp;lt;providers&amp;gt;  &lt;p&gt;&amp;lt;add connectionStringName=&quot;SQLConnectionString&quot; passwordAttemptWindow=&quot;5&quot; enablePasswordRetrieval=&quot;false&quot; enablePasswordReset=&quot;false&quot; requiresQuestionAndAnswer=&quot;true&quot; applicationName=&quot;/&quot; requiresUniqueEmail=&quot;true&quot; passwordFormat=&quot;Hashed&quot; description=&quot;Stores and Retrieves membership data from SQL Server&quot; name=&quot;SQL-MembershipProvider&quot; type=&quot;System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&quot; /&amp;gt;  &lt;p&gt;&amp;lt;/providers&amp;gt;  &lt;p&gt;&amp;lt;/membership&amp;gt;  &lt;p&gt;아래와 같이 &quot;PeoplePickerWildcards&quot; 노드를 찾아 추가한다.  &lt;p&gt;&amp;lt;PeoplePickerWildcards&amp;gt;  &lt;p&gt;&amp;lt;clear /&amp;gt;  &lt;p&gt;&amp;lt;add key=&quot;AspNetSqlMembershipProvider&quot; value=&quot;%&quot; /&amp;gt;  &lt;p&gt;&amp;lt;add key=&quot;SQL-MembershipProvider&quot; value=&quot;%&quot; /&amp;gt;  &lt;p&gt;&amp;lt;/PeoplePickerWildcards&amp;gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;131&quot;&gt; &lt;p&gt;2. Security Token Service Membership, Role Provider설정하기&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;465&quot;&gt; &lt;p&gt;STS서비스의 web.config 파일은  &lt;p&gt;&lt;b&gt;%programfiles%\common files\Microsoft Shared\web server extensions\14\WebServices\SecurityToken&lt;/b&gt; 에 있음.  &lt;p&gt;&amp;lt;configuration /&amp;gt;안쪽에  &lt;p&gt;&amp;lt;connectionStrings&amp;gt;  &lt;p&gt;&amp;lt;add name=&quot;SQLConnectionString&quot; connectionString=&quot;data source=SQLServerName;Integrated Security=SSPI;Initial Catalog=aspnetdb&quot; /&amp;gt;  &lt;p&gt;&amp;lt;/connectionStrings&amp;gt;  &lt;p&gt;&amp;lt;system.web&amp;gt;  &lt;p&gt;&amp;lt;roleManager defaultProvider=&quot;c&quot; enabled=&quot;true&quot; cacheRolesInCookie=&quot;false&quot;&amp;gt;  &lt;p&gt;&amp;lt;providers&amp;gt;  &lt;p&gt;&amp;lt;add name=&quot;c&quot; type=&quot;Microsoft.SharePoint.Administration.Claims.SPClaimsAuthRoleProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&quot; /&amp;gt;  &lt;p&gt;&amp;lt;add connectionStringName=&quot;SQLConnectionString&quot; applicationName=&quot;/&quot; description=&quot;Stores and retrieves roles from SQL Server&quot; name=&quot;SQL-RoleManager&quot; type=&quot;System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&quot; /&amp;gt;  &lt;p&gt;&amp;lt;/providers&amp;gt;  &lt;p&gt;&amp;lt;/roleManager&amp;gt;  &lt;p&gt;&amp;lt;membership defaultProvider=&quot;i&quot;&amp;gt;  &lt;p&gt;&amp;lt;providers&amp;gt;  &lt;p&gt;&amp;lt;add name=&quot;i&quot; type=&quot;Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&quot; /&amp;gt;  &lt;p&gt;&amp;lt;add connectionStringName=&quot;SQLConnectionString&quot; passwordAttemptWindow=&quot;5&quot; enablePasswordRetrieval=&quot;false&quot; enablePasswordReset=&quot;false&quot; requiresQuestionAndAnswer=&quot;true&quot; applicationName=&quot;/&quot; requiresUniqueEmail=&quot;true&quot; passwordFormat=&quot;Hashed&quot; description=&quot;Stores and Retrieves membership data from SQL Server&quot; name=&quot;SQL-MembershipProvider&quot; type=&quot;System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&quot; /&amp;gt;  &lt;p&gt;&amp;lt;/providers&amp;gt;  &lt;p&gt;&amp;lt;/membership&amp;gt;  &lt;p&gt;&amp;lt;/system.web&amp;gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;131&quot;&gt; &lt;p&gt;3. ASPNET Membership DB설치&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;465&quot;&gt; &lt;p&gt;1. SharePoint 2010 서버에서 명령 프롬프트를 연다.  &lt;p&gt;2. C:\Windows\Micrsooft .Net\Framework64\v2.0.50727 폴더로 이동  &lt;p&gt;3.&amp;nbsp; “&lt;b&gt;aspnet_regsql.exe&lt;/b&gt;” 실행. 실행 하면 아래와 같은 마법사가 나옴.  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TVNKjziieDI/AAAAAAAAA1Q/9gLI8PRuEuY/s1600-h/clip_image002%5B3%5D.jpg&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image002&quot; border=&quot;0&quot; alt=&quot;clip_image002&quot; src=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TVNKkbhiZ6I/AAAAAAAAA1U/Gk-H5TNgSYU/clip_image002_thumb.jpg?imgmax=800&quot; width=&quot;244&quot; height=&quot;164&quot;&gt;&lt;/a&gt;  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TVNKlLPRUwI/AAAAAAAAA1Y/as5u9RW3jzA/s1600-h/clip_image004%5B3%5D.jpg&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image004&quot; border=&quot;0&quot; alt=&quot;clip_image004&quot; src=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TVNKlyg4cLI/AAAAAAAAA1c/Vs1-f6SzGLQ/clip_image004_thumb.jpg?imgmax=800&quot; width=&quot;244&quot; height=&quot;193&quot;&gt;&lt;/a&gt;  &lt;p&gt;Database 이름을 &amp;lt;default&amp;gt;로 놓고 진행하면 &quot;aspnetdb&quot; 라는 멤버쉽 db가 생성됨.  &lt;p&gt;4. Aspnetdb에 SharePoint Service Application Pool 계정이 읽고 쓰기 권한을 할당 함.  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TVNKmRv1b7I/AAAAAAAAA1g/wFEOsc9Azps/s1600-h/clip_image006%5B3%5D.jpg&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image006&quot; border=&quot;0&quot; alt=&quot;clip_image006&quot; src=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TVNKnEbu-SI/AAAAAAAAA1k/RdVoNMYzDW0/clip_image006_thumb.jpg?imgmax=800&quot; width=&quot;244&quot; height=&quot;237&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;131&quot;&gt; &lt;p&gt;4. Web Application 생성&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;465&quot;&gt; &lt;p&gt;Form Based Authentication을 지원하는 Web Application을 아래와 같이 생성한다.  &lt;p&gt;1. 중앙 관리사이트를 연다.  &lt;p&gt;2. 응용프로그램 관리 아래의 웹 응용프로그램 관리 클릭  &lt;p&gt;3. 리본 메뉴의 &quot;new&quot; 클릭  &lt;p&gt;4. 페이지 상단 Claims based Authentication 선택  &lt;p&gt;a. Claims Based Authentication 선택  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TVNKnrTPTqI/AAAAAAAAA1o/s0bsYC6qFls/s1600-h/clip_image007%5B6%5D%5B2%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image007[6]&quot; border=&quot;0&quot; alt=&quot;clip_image007[6]&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TVNKoFSdmgI/AAAAAAAAA1s/DQyfP0ijLbE/clip_image007%5B6%5D_thumb.png?imgmax=800&quot; width=&quot;244&quot; height=&quot;64&quot;&gt;&lt;/a&gt;  &lt;p&gt;a. Host Header와 Port 지정  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TVNKos8HNmI/AAAAAAAAA1w/cF_njaLK6k4/s1600-h/clip_image009%5B3%5D.jpg&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image009&quot; border=&quot;0&quot; alt=&quot;clip_image009&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TVNKpQZ8-DI/AAAAAAAAA10/jmxnMoHvQqw/clip_image009_thumb.jpg?imgmax=800&quot; width=&quot;244&quot; height=&quot;115&quot;&gt;&lt;/a&gt;  &lt;p&gt;c. 익명 인증 설정  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TVNKp9ZQA6I/AAAAAAAAA14/SiD2Z6MGG1A/s1600-h/clip_image010%5B6%5D%5B2%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image010[6]&quot; border=&quot;0&quot; alt=&quot;clip_image010[6]&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TVNKqoxbomI/AAAAAAAAA18/tvtiflIhgHE/clip_image010%5B6%5D_thumb.png?imgmax=800&quot; width=&quot;244&quot; height=&quot;105&quot;&gt;&lt;/a&gt;  &lt;p&gt;d. \Membership Provider와 Role Provider 이름 설정  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TVNKrJp-90I/AAAAAAAAA2A/Csxm7_XH_dM/s1600-h/clip_image012%5B3%5D.jpg&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image012&quot; border=&quot;0&quot; alt=&quot;clip_image012&quot; src=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TVNKr7JLaBI/AAAAAAAAA2E/_yMaYRz-ILY/clip_image012_thumb.jpg?imgmax=800&quot; width=&quot;244&quot; height=&quot;136&quot;&gt;&lt;/a&gt;  &lt;p&gt;e. Custom Sign In Page 지정  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TVNKsc9ypgI/AAAAAAAAA2I/-4AV03nsx5o/s1600-h/clip_image013%5B6%5D%5B2%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image013[6]&quot; border=&quot;0&quot; alt=&quot;clip_image013[6]&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TVNKtJgJ44I/AAAAAAAAA2M/VAzMjp54uuU/clip_image013%5B6%5D_thumb.png?imgmax=800&quot; width=&quot;244&quot; height=&quot;94&quot;&gt;&lt;/a&gt;  &lt;p&gt;f. Contents Database이름 변경  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TVNKtrhbjSI/AAAAAAAAA2Q/EjSmSzJtILg/s1600-h/clip_image014%5B6%5D%5B2%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image014[6]&quot; border=&quot;0&quot; alt=&quot;clip_image014[6]&quot; src=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TVNKuNVg6UI/AAAAAAAAA2U/kWqEPdaxxD0/clip_image014%5B6%5D_thumb.png?imgmax=800&quot; width=&quot;244&quot; height=&quot;89&quot;&gt;&lt;/a&gt;  &lt;p&gt;g. Save를 눌러 실행한다.  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TVNKuokUQVI/AAAAAAAAA2Y/5Ul1ZnFI1x4/s1600-h/clip_image015%5B6%5D%5B2%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image015[6]&quot; border=&quot;0&quot; alt=&quot;clip_image015[6]&quot; src=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TVNKvQyZPpI/AAAAAAAAA2c/lJGqGxgT7o4/clip_image015%5B6%5D_thumb.png?imgmax=800&quot; width=&quot;244&quot; height=&quot;101&quot;&gt;&lt;/a&gt;  &lt;p&gt;5. 사이트 모음 생성하기.  &lt;p&gt;a. 앞서 실행 결과 화면에서 &quot;Create Site Collection&quot;을 클릭  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TVNKv14PHZI/AAAAAAAAA2g/orgOXThFDK4/s1600-h/clip_image017%5B3%5D.jpg&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image017&quot; border=&quot;0&quot; alt=&quot;clip_image017&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TVNKwu_jtDI/AAAAAAAAA2k/FXBYLW1OnwQ/clip_image017_thumb.jpg?imgmax=800&quot; width=&quot;244&quot; height=&quot;161&quot;&gt;&lt;/a&gt;  &lt;p&gt;b. 창을 닫았다면 응용 프로그램 관리 클릭 후 사이트 모음 생성 클릭  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TVNKxNDdpoI/AAAAAAAAA2o/Bwg2Gbam6O0/s1600-h/clip_image018%5B6%5D%5B2%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image018[6]&quot; border=&quot;0&quot; alt=&quot;clip_image018[6]&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TVNKxuHLY3I/AAAAAAAAA2s/2ofCao7oyz8/clip_image018%5B6%5D_thumb.png?imgmax=800&quot; width=&quot;244&quot; height=&quot;185&quot;&gt;&lt;/a&gt;  &lt;p&gt;c. 웹 응용프로그램 선택 확인  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TVNKyCbaUfI/AAAAAAAAA2w/GlwlHh-EQjw/s1600-h/clip_image019%5B6%5D%5B2%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image019[6]&quot; border=&quot;0&quot; alt=&quot;clip_image019[6]&quot; src=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TVNKy5ZNXuI/AAAAAAAAA20/ICnMkKkJtX4/clip_image019%5B6%5D_thumb.png?imgmax=800&quot; width=&quot;244&quot; height=&quot;78&quot;&gt;&lt;/a&gt;  &lt;p&gt;d. 사이트 제목과 템플릿 지정  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TVNKzV-xvqI/AAAAAAAAA24/qd5j4pGX7wE/s1600-h/clip_image021%5B3%5D.jpg&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image021&quot; border=&quot;0&quot; alt=&quot;clip_image021&quot; src=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TVNK0JSfOcI/AAAAAAAAA28/RsHDzbhY6Nc/clip_image021_thumb.jpg?imgmax=800&quot; width=&quot;244&quot; height=&quot;179&quot;&gt;&lt;/a&gt;  &lt;p&gt;e. 사이트 관리자 지정  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TVNK0gjMlbI/AAAAAAAAA3A/nmkyZ7AVBFw/s1600-h/clip_image023%5B3%5D.jpg&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image023&quot; border=&quot;0&quot; alt=&quot;clip_image023&quot; src=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TVNK1Fw64cI/AAAAAAAAA3E/fb6qGC7o4_Y/clip_image023_thumb.jpg?imgmax=800&quot; width=&quot;244&quot; height=&quot;34&quot;&gt;&lt;/a&gt;  &lt;p&gt;f. OK버튼을 눌러 생성완료  &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TVNK1yuBRaI/AAAAAAAAA3I/a6vBJ9AVJY0/s1600-h/clip_image024%5B3%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image024&quot; border=&quot;0&quot; alt=&quot;clip_image024&quot; src=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TVNK2axKSRI/AAAAAAAAA3M/Xo0UajXFO_g/clip_image024_thumb.png?imgmax=800&quot; width=&quot;244&quot; height=&quot;152&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;131&quot;&gt; &lt;p&gt;5. 생성된 Web Application web.config 수정&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;465&quot;&gt; &lt;p&gt;C:\inetpub\wwwroot\wss\VirtualDirectories\ 아래에서 생성한 Web Application 폴더내의 web.config 파일을 연다.  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TVNK2-gQmOI/AAAAAAAAA3Q/G_1WbXPSXAE/s1600-h/clip_image026%5B3%5D.jpg&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image026&quot; border=&quot;0&quot; alt=&quot;clip_image026&quot; src=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TVNK3vIgTBI/AAAAAAAAA3U/8sR7iZ4mMow/clip_image026_thumb.jpg?imgmax=800&quot; width=&quot;244&quot; height=&quot;109&quot;&gt;&lt;/a&gt;  &lt;p&gt;&amp;lt;configuration /&amp;gt;안쪽에  &lt;p&gt;&amp;lt;connectionStrings&amp;gt;  &lt;p&gt;&amp;lt;add name=&quot;SQLConnectionString&quot; connectionString=&quot;data source=SQLServerName;Integrated Security=SSPI;Initial Catalog=aspnetdb&quot; /&amp;gt;  &lt;p&gt;&amp;lt;/connectionStrings&amp;gt;  &lt;p&gt;&amp;lt;system.web&amp;gt;&amp;lt;/system.web&amp;gt; 사이에  &lt;p&gt;&amp;lt;roleManager defaultProvider=&quot;c&quot; enabled=&quot;true&quot; cacheRolesInCookie=&quot;false&quot;&amp;gt;  &lt;p&gt;&amp;lt;providers&amp;gt;  &lt;p&gt;&amp;lt;add name=&quot;c&quot; type=&quot;Microsoft.SharePoint.Administration.Claims.SPClaimsAuthRoleProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&quot; /&amp;gt;  &lt;p&gt;&amp;lt;add connectionStringName=&quot;SQLConnectionString&quot; applicationName=&quot;/&quot; description=&quot;Stores and retrieves roles from SQL Server&quot; name=&quot;SQL-RoleManager&quot; type=&quot;System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&quot; /&amp;gt;  &lt;p&gt;&amp;lt;/providers&amp;gt;  &lt;p&gt;&amp;lt;/roleManager&amp;gt;  &lt;p&gt;&amp;lt;membership defaultProvider=&quot;i&quot;&amp;gt;  &lt;p&gt;&amp;lt;providers&amp;gt;  &lt;p&gt;&amp;lt;add name=&quot;i&quot; type=&quot;Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&quot; /&amp;gt;  &lt;p&gt;&amp;lt;add connectionStringName=&quot;SQLConnectionString&quot; passwordAttemptWindow=&quot;5&quot; enablePasswordRetrieval=&quot;false&quot; enablePasswordReset=&quot;false&quot; requiresQuestionAndAnswer=&quot;true&quot; applicationName=&quot;/&quot; requiresUniqueEmail=&quot;true&quot; passwordFormat=&quot;Hashed&quot; description=&quot;Stores and Retrieves membership data from SQL Server&quot; name=&quot;SQL-MembershipProvider&quot; type=&quot;System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&quot; /&amp;gt;  &lt;p&gt;&amp;lt;/providers&amp;gt;  &lt;p&gt;&amp;lt;/membership&amp;gt;  &lt;p&gt;아래와 같이 &quot;PeoplePickerWildcards&quot; 노드를 찾아 추가한다.  &lt;p&gt;&amp;lt;PeoplePickerWildcards&amp;gt;  &lt;p&gt;&amp;lt;clear /&amp;gt;  &lt;p&gt;&amp;lt;add key=&quot;AspNetSqlMembershipProvider&quot; value=&quot;%&quot; /&amp;gt;  &lt;p&gt;&amp;lt;add key=&quot;SQL-MembershipProvider&quot; value=&quot;%&quot; /&amp;gt;  &lt;p&gt;&amp;lt;/PeoplePickerWildcards&amp;gt;  &lt;p&gt;Command Prompt에서 IISRESET 이후 사이트를 연다.  &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TVNK4DDgXVI/AAAAAAAAA3Y/gXbt7Z__634/s1600-h/clip_image028%5B3%5D.jpg&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image028&quot; border=&quot;0&quot; alt=&quot;clip_image028&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TVNK43OGVVI/AAAAAAAAA3c/BRlz9aMjTt4/clip_image028_thumb.jpg?imgmax=800&quot; width=&quot;244&quot; height=&quot;137&quot;&gt;&lt;/a&gt;  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TVNK5QhSI7I/AAAAAAAAA3g/yS_93lhJDas/s1600-h/clip_image030%5B3%5D.jpg&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image030&quot; border=&quot;0&quot; alt=&quot;clip_image030&quot; src=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TVNK59FLMVI/AAAAAAAAA3k/NxCPSC9g6uU/clip_image030_thumb.jpg?imgmax=800&quot; width=&quot;244&quot; height=&quot;187&quot;&gt;&lt;/a&gt;  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TVNK6XERZhI/AAAAAAAAA3o/O-I2uDzdZeI/s1600-h/clip_image032%5B3%5D.jpg&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image032&quot; border=&quot;0&quot; alt=&quot;clip_image032&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TVNK60k--qI/AAAAAAAAA3s/-kOMtkleeas/clip_image032_thumb.jpg?imgmax=800&quot; width=&quot;244&quot; height=&quot;132&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  </content><link rel='replies' type='application/atom+xml' href='http://teamplace.blogspot.com/feeds/1365486830588656326/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://teamplace.blogspot.com/2011/02/sharepoint-2010-form-based.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/1365486830588656326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/1365486830588656326'/><link rel='alternate' type='text/html' href='http://teamplace.blogspot.com/2011/02/sharepoint-2010-form-based.html' title='SharePoint 2010 Form Based Authentication 및 Custom Login Page'/><author><name>류경석</name><uri>http://www.blogger.com/profile/01431782672269467193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihdQxYJjlFKLzAEqJ3mWbUlBkX-Z9aerVmNCPGFCEjdPvFnyIAeTLKLMBmiFCf1HnxqtOAE2EHMhWuOFMmjJlQB5Sy0ngHms8FXFjz13OjgVgpht44gE2iwpaUfRMsxuM/s220/narzis.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_om2a49QhjVk/TVNKkbhiZ6I/AAAAAAAAA1U/Gk-H5TNgSYU/s72-c/clip_image002_thumb.jpg?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6558391903200367678.post-264297596264799340</id><published>2011-01-16T17:48:00.001-08:00</published><updated>2011-01-16T17:48:38.687-08:00</updated><title type='text'>Web Part Error: UnsafeControlException</title><content type='html'>&lt;span xmlns=&#39;&#39;&gt;&lt;p&gt;&lt;span style=&#39;font-family:맑은 고딕; font-size:10pt&#39;&gt;WebPart Provisioning이 잘 되지 않고 아래와 같은 에러가 화면에 나오는 경우가 있습니다.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style=&#39;color:#676767; font-family:Verdana; font-size:8pt&#39;&gt;Web Part Error: A Web Part or Web Form Control on this Page cannot be displayed or imported. You don&#39;t have Add and Customize Pages permissions required to perform this action.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&#39;http://sp/sites/blogdemo/lists/posts/PostCreate.aspx&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:8pt&#39;&gt;Hide Error Details&lt;/span&gt;&lt;/a&gt;&lt;span style=&#39;font-family:Verdana; font-size:8pt&#39;&gt;&lt;span style=&#39;color:#676767&#39;&gt;&lt;br /&gt;					&lt;/span&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;color:#676767; font-family:Verdana; font-size:8pt&#39;&gt;[UnsafeControlException: A Web Part or Web Form Control on this Page cannot be displayed or imported. You don&#39;t have Add and Customize Pages permissions required to perform this action.]&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;color:#676767; font-family:Verdana; font-size:8pt&#39;&gt;  at Microsoft.SharePoint.WebPartPages.WebPartImporter.CreateWebPart(Boolean clearConnections) &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;color:#676767; font-family:Verdana; font-size:8pt&#39;&gt;  at Microsoft.SharePoint.WebPartPages.WebPartImporter.Import(SPWebPartManager manager, XmlReader reader, Boolean clearConnections, Uri webPartPageUri, SPWeb spWeb) &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;color:#676767; font-family:Verdana; font-size:8pt&#39;&gt;  at Microsoft.SharePoint.WebPartPages.SPWebPartManager.CompressWebPartNoSave(Boolean isClosed) &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:맑은 고딕; font-size:10pt&#39;&gt;원인은 Anonymous가 설정 된 사이트인 경우 사이트 최초 시작 시에 anonymous로 바로 연결 하게 되면 WebPart Page내에 Provisioning된 webpart를 제대로 불러오지 못해서 그런 것 같습니다.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:맑은 고딕; font-size:10pt&#39;&gt;사이트 편집권한이 있는 사용자로 로그인 후 다시 anonymous로 접근하면 해결 되더군요.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://teamplace.blogspot.com/feeds/264297596264799340/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://teamplace.blogspot.com/2011/01/web-part-error-unsafecontrolexception.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/264297596264799340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/264297596264799340'/><link rel='alternate' type='text/html' href='http://teamplace.blogspot.com/2011/01/web-part-error-unsafecontrolexception.html' title='Web Part Error: UnsafeControlException'/><author><name>류경석</name><uri>http://www.blogger.com/profile/01431782672269467193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihdQxYJjlFKLzAEqJ3mWbUlBkX-Z9aerVmNCPGFCEjdPvFnyIAeTLKLMBmiFCf1HnxqtOAE2EHMhWuOFMmjJlQB5Sy0ngHms8FXFjz13OjgVgpht44gE2iwpaUfRMsxuM/s220/narzis.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6558391903200367678.post-366752986209010134</id><published>2010-08-19T21:44:00.001-07:00</published><updated>2010-08-19T21:44:55.042-07:00</updated><title type='text'>User Profile 관련 Hotfix가 나왔습니다.</title><content type='html'>&lt;p&gt;User Profile 관련해서 설정과 작동에 버그가 좀 있는 것 같았는데요.. 다행히 hotfix가 나왔네요.&lt;/p&gt; &lt;p&gt;&lt;a title=&quot;http://support.microsoft.com/kb/983497/&quot; href=&quot;http://support.microsoft.com/kb/983497/&quot;&gt;http://support.microsoft.com/kb/983497/&lt;/a&gt;&amp;nbsp; -&amp;gt;기본적으로 한글로 번역기가 돌려 보여줍니다. 번역 품질이 쪼금 떨어지네요 &lt;/p&gt; &lt;p&gt;&lt;a title=&quot;http://support.microsoft.com/kb/983497/en-us&quot; href=&quot;http://support.microsoft.com/kb/983497/en-us&quot;&gt;http://support.microsoft.com/kb/983497/en-us&lt;/a&gt;&amp;nbsp; –&amp;gt; 영문&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://teamplace.blogspot.com/feeds/366752986209010134/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://teamplace.blogspot.com/2010/08/user-profile-hotfix.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/366752986209010134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/366752986209010134'/><link rel='alternate' type='text/html' href='http://teamplace.blogspot.com/2010/08/user-profile-hotfix.html' title='User Profile 관련 Hotfix가 나왔습니다.'/><author><name>류경석</name><uri>http://www.blogger.com/profile/01431782672269467193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihdQxYJjlFKLzAEqJ3mWbUlBkX-Z9aerVmNCPGFCEjdPvFnyIAeTLKLMBmiFCf1HnxqtOAE2EHMhWuOFMmjJlQB5Sy0ngHms8FXFjz13OjgVgpht44gE2iwpaUfRMsxuM/s220/narzis.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6558391903200367678.post-4225526046916993009</id><published>2010-08-02T19:08:00.001-07:00</published><updated>2010-08-02T19:08:54.316-07:00</updated><title type='text'>web.Navigation.TopNavigationBar is null</title><content type='html'>&lt;p&gt;사이트 정의를 새로 만들면서 navigation을 새로 만들어야 하는 상황이었습니다. &lt;p&gt;Feature를 하나 생성 한 다음 TopNavigationBar에 접근해서 기존 메뉴 노드를 삭제하고 제가 필요한 링크를 다는 작업을 하는데 문제가 시작 되었습니다.&lt;/p&gt; &lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt; &lt;div style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum1&quot;&gt;   1:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum2&quot;&gt;   2:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;override&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;void&lt;/span&gt; FeatureActivated(SPFeatureReceiverProperties properties)&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum3&quot;&gt;   3:&lt;/span&gt; {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum4&quot;&gt;   4:&lt;/span&gt;     SPNavigationNode nodeToAdd = &lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; SPNavigationNode(&lt;span style=&quot;color: #006080&quot;&gt;&quot;Test1&quot;&lt;/span&gt;, web.Url + &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum5&quot;&gt;   5:&lt;/span&gt;     &lt;span style=&quot;color: #006080&quot;&gt;&quot;/Pages/PageView.aspx&quot;&lt;/span&gt;);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum6&quot;&gt;   6:&lt;/span&gt;     web.Navigation.TopNavigationBar.AddAsLast(nodeToAdd);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum7&quot;&gt;   7:&lt;/span&gt; ...&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum8&quot;&gt;   8:&lt;/span&gt; }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;p&gt;위 코드에서 web.Navigation.TopNavigationBar 개체가 자꾸 null이 들어 오는 것입니다.&lt;br /&gt;&lt;p&gt;조금 research를 해 봤습니다.&lt;br /&gt;&lt;p&gt;의외로 TopNavigationBar가 null인 상황이 자주 발생 하는 것 같았습니다.&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/2206240/sharepoint-quicklaunch-and-topnavigationbar-dissapearing&quot;&gt;http://stackoverflow.com/questions/2206240/sharepoint-quicklaunch-and-topnavigationbar-dissapearing&lt;/a&gt;&lt;br /&gt;&lt;p&gt;위 url에서는 아예 TopNavigationBar레코드가 사라지는 경우가 있으니 아예 만들라고 이야기를 하더군요.&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://statto1974.wordpress.com/2008/04/09/beware-of-deleting-global-navigation-nodes-in-spwebnavigationglobalnodes/&quot;&gt;http://statto1974.wordpress.com/2008/04/09/beware-of-deleting-global-navigation-nodes-in-spwebnavigationglobalnodes/&lt;/a&gt;&lt;br /&gt;&lt;p&gt;여기서는 navigaion node를 잘못 삭제하면 그런 증상이 발생한다고 하는데 제 경우에는 사이트 생성시 부터 TopNavigationBar가 보이지 않는 증상이었습니다.&lt;br /&gt;&lt;p&gt;SharePoint의 Navigation 개체는 기본적으로 root 아래에 3개의 Node가 제공 됩니다.&lt;br /&gt;&lt;p&gt;Home : 1000&lt;br /&gt;&lt;p&gt;Top Navigation Bar : 1002&lt;br /&gt;&lt;p&gt;Quick Lauch Bar : 1025&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TFd6MkDdToI/AAAAAAAAAzs/BnRYgbCCf_c/s1600-h/clip_image001%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001&quot; border=&quot;0&quot; alt=&quot;clip_image001&quot; src=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TFd6NFIEoYI/AAAAAAAAAzw/Dg3wDt2Ds94/clip_image001_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;491&quot; height=&quot;523&quot;&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;이상한 것은 Quick Lauch Bar 개체는 접근에 문제가 없다는 것이었습니다. &lt;br /&gt;&lt;p&gt;한참동안의 고민끝에 원인을 알아 냈는데요 이유는 onet.xml 에 NavBar 가 없어서 였습니다. 제 딴에는 Navigation을 새로 만든다고 onet.xml에 NavBars 를 몽땅 들어냈는데 TopNavigationBar의 경우에는 여기에 꼭 있어야 (ID=1000) web.Navigation.TopNavigationBar property로 노출이 됩니다.&lt;/p&gt;&lt;br /&gt;&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;&lt;br /&gt;&lt;div style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum1&quot;&gt;   1:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum2&quot;&gt;   2:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;Project&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;Title&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;DocExport&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;Revision&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;2&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;ListDir&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;xmlns:ows&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;Microsoft &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum3&quot;&gt;   3:&lt;/span&gt; SharePoint&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;xmlns&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;http://schemas.microsoft.com/sharepoint/&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum4&quot;&gt;   4:&lt;/span&gt;     &lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;NavBars&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum5&quot;&gt;   5:&lt;/span&gt;     &lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;NavBar&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;Name&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;SharePoint Top Navbar&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;1002&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum6&quot;&gt;   6:&lt;/span&gt;     &lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;NavBar&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum7&quot;&gt;   7:&lt;/span&gt;     &lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;NavBars&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;p&gt;SharePoint의 길은 멀고도 험하다는 걸 느끼는 하루였네요 T.T&lt;br /&gt;  </content><link rel='replies' type='application/atom+xml' href='http://teamplace.blogspot.com/feeds/4225526046916993009/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://teamplace.blogspot.com/2010/08/webnavigationtopnavigationbar-is-null.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/4225526046916993009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/4225526046916993009'/><link rel='alternate' type='text/html' href='http://teamplace.blogspot.com/2010/08/webnavigationtopnavigationbar-is-null.html' title='web.Navigation.TopNavigationBar is null'/><author><name>류경석</name><uri>http://www.blogger.com/profile/01431782672269467193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihdQxYJjlFKLzAEqJ3mWbUlBkX-Z9aerVmNCPGFCEjdPvFnyIAeTLKLMBmiFCf1HnxqtOAE2EHMhWuOFMmjJlQB5Sy0ngHms8FXFjz13OjgVgpht44gE2iwpaUfRMsxuM/s220/narzis.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_om2a49QhjVk/TFd6NFIEoYI/AAAAAAAAAzw/Dg3wDt2Ds94/s72-c/clip_image001_thumb%5B1%5D.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6558391903200367678.post-7696373956132683840</id><published>2010-08-01T17:16:00.001-07:00</published><updated>2010-08-01T17:16:00.835-07:00</updated><title type='text'>SharePoint가 작동중인 Application Pool Worker Process ID 찾기</title><content type='html'>&lt;p&gt;SharePoint 기반 개발을 하다가 보면 Process를 attatch 해서 debugging을 해야 할 일이 자주 발생 합니다. 그런데 IIS에서 돌아가는 Application Pool이 많다 보면 어떤 worker process(w3p.exe)가 내 웹애플리케이션을 돌리고 있는지 알 수가 없습니다. 그럴 때는 iis의 appcmd를 사용해서 현재 작동중인 worker process정보를 알아 낼 수 있습니다.&lt;/p&gt; &lt;p&gt;C:\Windows\System32\inetsrv&amp;gt;appcmd list wp&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TFYOPZDvGgI/AAAAAAAAAzc/dNP0r5d-DcI/s1600-h/image%5B3%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TFYOP-IsBWI/AAAAAAAAAzg/7_FYf7n0goA/image_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;531&quot; height=&quot;96&quot;&gt;&lt;/a&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://teamplace.blogspot.com/feeds/7696373956132683840/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://teamplace.blogspot.com/2010/08/sharepoint-application-pool-worker.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/7696373956132683840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/7696373956132683840'/><link rel='alternate' type='text/html' href='http://teamplace.blogspot.com/2010/08/sharepoint-application-pool-worker.html' title='SharePoint가 작동중인 Application Pool Worker Process ID 찾기'/><author><name>류경석</name><uri>http://www.blogger.com/profile/01431782672269467193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihdQxYJjlFKLzAEqJ3mWbUlBkX-Z9aerVmNCPGFCEjdPvFnyIAeTLKLMBmiFCf1HnxqtOAE2EHMhWuOFMmjJlQB5Sy0ngHms8FXFjz13OjgVgpht44gE2iwpaUfRMsxuM/s220/narzis.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_om2a49QhjVk/TFYOP-IsBWI/AAAAAAAAAzg/7_FYf7n0goA/s72-c/image_thumb%5B1%5D.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6558391903200367678.post-5178569667795364444</id><published>2010-07-22T18:43:00.001-07:00</published><updated>2010-08-01T23:41:22.577-07:00</updated><title type='text'>SharePoint 2010 오역 모음</title><content type='html'>&lt;p&gt;이번 SharePoint 2010에도 한글 버전의 잘못된 번역이 자꾸 눈에 띄는군요 요번에는 좀 정리를 해 보겠습니다.  &lt;blockquote&gt; &lt;p&gt;1.Windows 토큰 서비스에 대한 클레임&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;중앙관리 -&amp;gt; 응용프로그램 관리 -&amp;gt; 서비스 응용 프로그램 탭-&amp;gt; 서버의 서비스 관리에 특정 서버에서 작동중인 서비스 목록을 볼 수 있습니다. 그 중에서 &quot;Windows 토큰 서비스에 대한 클레임&quot; 이라는 서비스 이름이 있네요 이 서비스 명은 &quot;Claim to Windows Token Service&quot;을 오역 한 것입니다. &quot;클레임을 Windows 토큰으로 변환 하는 서비스&quot;가 맞는 의미입니다.  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEjzy6qz38I/AAAAAAAAAzE/y0nk6Rb4pHk/s1600-h/clip_image001%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;clip_image001&quot; border=&quot;0&quot; alt=&quot;clip_image001&quot; src=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TEjzzcCivvI/AAAAAAAAAzI/-vOca-ad358/clip_image001_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;675&quot; height=&quot;94&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;2.도서관&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;처음에는 이 메뉴를 보고 SharePoint에 새로운 기능이 들어 간 것으로 알았습니다. --;; 원문은 Library 입니다만 한글로도 그동안 라이브러리라고 사용하고 있습니다. 이 2010에서도 그렇구요 아래 그림에서만 &quot;도서관&quot;이라고 번역을 했습니다. 번역의 일관성이 없네요  &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TEjzznAJynI/AAAAAAAAAzM/2J_IZ8UgFbA/s1600-h/clip_image002%5B3%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;clip_image002&quot; border=&quot;0&quot; alt=&quot;clip_image002&quot; src=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEjz0WytW5I/AAAAAAAAAzQ/nVI9qk1upgA/clip_image002_thumb.png?imgmax=800&quot; width=&quot;244&quot; height=&quot;150&quot;&gt;&lt;/a&gt;  &lt;blockquote&gt; &lt;p&gt;3. 사용자 프로필 동기화 서비스  &lt;p&gt;요 부분은 오역이라기 보다는 버그에 가깝습니다. User Profile에 관련된 서비스는 User Profile Service와 User Profile Synchronization Service 이 두개가 있습니다. 그런데 두번째 만 한글로 “사용자 프로필 동기화 서비스”로 번역을 했습니다. 전 이 User Profile Synchronization Service가 RTM나오면서 User Profile Service로 통합 된 줄 알았습니다. 요것 때문에 며칠을 고생했네요. T.T  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEj6FvpUm8I/AAAAAAAAAzU/S9wCDCVhP8I/s1600-h/image%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEj6GZPbipI/AAAAAAAAAzY/0N_JMNwKwPE/image_thumb%5B2%5D.png?imgmax=800&quot; width=&quot;644&quot; height=&quot;251&quot;&gt;&lt;/a&gt; &lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;4.콘텐츠 형식에서의 목록정의 &lt;p&gt;이건 SharePoint가 아니라 Visual Studio 2010의 SharePoint 프로젝트 템플릿 중 하나의 이름입니다. &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TFZojhtuxcI/AAAAAAAAAzk/yScK95G_jgs/s1600-h/image%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TFZokebZNUI/AAAAAAAAAzo/HxtQO_ClMPs/image_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;707&quot; height=&quot;582&quot;&gt;&lt;/a&gt;&amp;nbsp; &lt;p&gt;번역 전 원문은 “List Definition from Content Type” 입니다. 콘텐츠 형식을 이미 가지고 있을 때 이놈을 바탕으로 목록 정의를 만드는 용도입니다. 의미 전달이 제대로 되지 않고 있네요 “콘텐츠 형식으로 목록정의 만들기” 정도가 어떨까 합니다.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;앞으로 눈에 띄는 대로 이 포스트에 업데이트 해 보도록 하겠습니다.    </content><link rel='replies' type='application/atom+xml' href='http://teamplace.blogspot.com/feeds/5178569667795364444/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://teamplace.blogspot.com/2010/07/sharepoint-2010.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/5178569667795364444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/5178569667795364444'/><link rel='alternate' type='text/html' href='http://teamplace.blogspot.com/2010/07/sharepoint-2010.html' title='SharePoint 2010 오역 모음'/><author><name>류경석</name><uri>http://www.blogger.com/profile/01431782672269467193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihdQxYJjlFKLzAEqJ3mWbUlBkX-Z9aerVmNCPGFCEjdPvFnyIAeTLKLMBmiFCf1HnxqtOAE2EHMhWuOFMmjJlQB5Sy0ngHms8FXFjz13OjgVgpht44gE2iwpaUfRMsxuM/s220/narzis.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_om2a49QhjVk/TEjzzcCivvI/AAAAAAAAAzI/-vOca-ad358/s72-c/clip_image001_thumb%5B1%5D.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6558391903200367678.post-2714655423233178932</id><published>2010-07-21T20:56:00.001-07:00</published><updated>2010-07-21T20:56:36.684-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Secure Store Service"/><category scheme="http://www.blogger.com/atom/ns#" term="SP2010"/><title type='text'>Secure Store Service</title><content type='html'>&lt;p&gt;&lt;a href=&quot;/2010/07/business-connectivity-service-sql-db.html&quot; target=&quot;_blank&quot;&gt;지난번 포스트&lt;/a&gt;에서 BCS를 통해 External Content Type을 사용하는 예제를 만들어 봤습니다. 그런 시나리오에서 제가 의도적으로 누락 했던 부분이 있습니다. 바로 BCS저장소에 접근 할 때 사용 하게 되는 인증 입니다. 그래서 서버 로컬에서 Administrator로 로그인 했을 땐 문제가 없지만 웹서버 바깥에서 로그인 하게 되면 DB인증이 실패 하는 경우가 발생 합니다. &lt;p&gt;BCS뿐 아니라 SharePoint는 Presentation layer의 역할을 가지고 있기 때문에 여러 데이터 소스로 부터 데이터를 취합 하는 시나리오가 자주 발생 하게 됩니다. 그럴 때 마다 가장 먼저 해결 해야 하는 부분이 데이터 소스에 접근 할 때 어떤 인증 방식으로 어떤 identity를 사용 할 것 인가 하는 문제 입니다. &lt;p&gt;이 때 SharePoint에서 제공 하는 솔루션이 Secure Storage Service 입니다. SSS는 2007 버전에서는 SSO서비스라고 이름 붙였습니다만 이름이 타 Web SSO와 혼동을 일으키는 부분도 있어서 이름을 바꾸어 업그레이드 되었습니다. &lt;p&gt;이제 지난 포스트에 이어서 SSS를 설정 하는 방법을 알아 보겠습니다. &lt;p&gt;중앙 관리에서 서비스 응용 프로그램 관리로 이동합니다. &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEfBIh33yJI/AAAAAAAAAxE/h6-S53H9vXY/s1600-h/clip_image001%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001&quot; border=&quot;0&quot; alt=&quot;clip_image001&quot; src=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TEfBJNfMnrI/AAAAAAAAAxI/Opui2rgvTZY/clip_image001_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;597&quot; height=&quot;424&quot;&gt;&lt;/a&gt; &lt;p&gt;만약 SharePoint 팜서비스 구성 마법사를 통해 Secure Store Service를 이미 만들어 둔 상태라면 아래 단계는 건너 뛰어도 됩니다. &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TEfBJ0Z58pI/AAAAAAAAAxM/S4nog9xsyD4/s1600-h/clip_image002%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image002&quot; border=&quot;0&quot; alt=&quot;clip_image002&quot; src=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TEfBKc5TzdI/AAAAAAAAAxQ/QHsl-6iXu8U/clip_image002_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;333&quot; height=&quot;417&quot;&gt;&lt;/a&gt; &lt;p&gt;서비스 응용 프로그램 이름과 데이터베이스 이름, 응용프로그램 풀 이름을 설정 합니다. &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TEfBLIHCCII/AAAAAAAAAxU/6JFJ6KSUX64/s1600-h/clip_image003%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image003&quot; border=&quot;0&quot; alt=&quot;clip_image003&quot; src=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TEfBL72pQ0I/AAAAAAAAAxY/b21Qk_sV8-Q/clip_image003_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;644&quot; height=&quot;395&quot;&gt;&lt;/a&gt; &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEfBMa20I6I/AAAAAAAAAxc/EtKw99XOBe0/s1600-h/clip_image004%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image004&quot; border=&quot;0&quot; alt=&quot;clip_image004&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEfBNDIp3mI/AAAAAAAAAxg/oBcBJlKnV9w/clip_image004_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;644&quot; height=&quot;309&quot;&gt;&lt;/a&gt; &lt;p&gt;서비스 응용 프로그램 목록에서 제대로 Secure Store Service가 만들어 졌는지 확인이 가능합니다. &lt;p&gt;&quot;관리&quot;를 클릭해서 나머지 설정을 진행 합니다. &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TEfBNrLaPRI/AAAAAAAAAxk/aImBy30wuOA/s1600-h/clip_image005%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image005&quot; border=&quot;0&quot; alt=&quot;clip_image005&quot; src=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEfBOfnSf5I/AAAAAAAAAxo/_c-Utq6aZIQ/clip_image005_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;566&quot; height=&quot;422&quot;&gt;&lt;/a&gt; &lt;p&gt;&quot;새 키 생성&quot;을 클릭합니다. &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEfBPKaXfzI/AAAAAAAAAxs/R_EA8UpkS6U/s1600-h/clip_image006%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image006&quot; border=&quot;0&quot; alt=&quot;clip_image006&quot; src=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TEfBPnxq_jI/AAAAAAAAAxw/dqS1oE5edPI/clip_image006_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;483&quot; height=&quot;407&quot;&gt;&lt;/a&gt; &lt;p&gt;키의 암호를 지정합니다. &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEfBQV60hWI/AAAAAAAAAx0/9PisaZWY0bs/s1600-h/clip_image007%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image007&quot; border=&quot;0&quot; alt=&quot;clip_image007&quot; src=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TEfBQ3GJiRI/AAAAAAAAAx4/pLNFLk9vI1k/clip_image007_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;644&quot; height=&quot;250&quot;&gt;&lt;/a&gt; &lt;p&gt;이제 &quot;새 응용 프로그램&quot;을 클릭 &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEfBRbZ6MDI/AAAAAAAAAx8/QPKioNlKoAg/s1600-h/clip_image008%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image008&quot; border=&quot;0&quot; alt=&quot;clip_image008&quot; src=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEfBSI9zn6I/AAAAAAAAAyA/McNTP0Q9PKM/clip_image008_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;528&quot; height=&quot;342&quot;&gt;&lt;/a&gt; &lt;p&gt;대상 응용 프로그램 ID, 표시 이름, 연락처 전자메일을 설정 합니다. 대상 응용 프로그램 형식은 &quot;그룹:&quot;을 선택 합니다. &quot;그룹&quot;은 Windows 기준으로 말씀드리자면 &quot;Domain Users같은 그룹에 속한 사용자 아이디가 이 &quot;MyDatabase&quot;라는 응용프로그램에 접근 한다면&quot; 이라는 의미 입니다. &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEfBSxIG_PI/AAAAAAAAAyE/8IuuForEMjo/s1600-h/clip_image009%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image009&quot; border=&quot;0&quot; alt=&quot;clip_image009&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEfBTeNIuDI/AAAAAAAAAyI/L2SrjoJ_-Zw/clip_image009_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;644&quot; height=&quot;419&quot;&gt;&lt;/a&gt; &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEfBUCf_LrI/AAAAAAAAAyM/VihddG10t_s/s1600-h/clip_image010%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image010&quot; border=&quot;0&quot; alt=&quot;clip_image010&quot; src=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEfBUufpU3I/AAAAAAAAAyQ/Rqmn-8Lvqno/clip_image010_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;644&quot; height=&quot;240&quot;&gt;&lt;/a&gt; &lt;p&gt;대상응용 프로그램 관리자에는 적당히 게정을 지정을 지정 하시고 중요 한 부분은 &quot;멤버&quot; 부분입니다. 어떤 사용자 그룹이 이 &quot;대상 응용 프로그램&quot;을 사용할 것인가를 지정하는 부분입니다. 다시 말하자면 &quot;Domain Users&quot;그룹에 속한 사용자들이 이 &quot;MyDatabase 대상 응용 프로그램&quot;에 접근시에 작동 한다는 것을 뜻합니다. &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TEfBVYBXcGI/AAAAAAAAAyU/4Mjty-muI_I/s1600-h/clip_image011%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image011&quot; border=&quot;0&quot; alt=&quot;clip_image011&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEfBWHkBW5I/AAAAAAAAAyY/QVahtZ02k-c/clip_image011_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;644&quot; height=&quot;387&quot;&gt;&lt;/a&gt; &lt;p&gt;&quot;MyDatabase&quot; 대상 응용 프로그램이 만들어 진 것을 확인 할 수 있습니다. &lt;p&gt;이제 이 대상프로그램에 접근한 사용자가 어떤 ID로 바꿀 것인가를 지정 합니다. &quot;자격 증명 설정&quot;을 클릭합니다. &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEfBWg6ZDII/AAAAAAAAAyc/v_hJdj8e_8s/s1600-h/clip_image012%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image012&quot; border=&quot;0&quot; alt=&quot;clip_image012&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEfBXQC0E4I/AAAAAAAAAyg/sB9yVi6NHVE/clip_image012_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;488&quot; height=&quot;386&quot;&gt;&lt;/a&gt; &lt;p&gt;자격 증명 설정 화면에서 대상 응용 프로그램에 접근시에 가장할 자격 증명을 지정 합니다. &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TEfBX5ENC7I/AAAAAAAAAyk/bPOMGcdz7xs/s1600-h/clip_image013%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image013&quot; border=&quot;0&quot; alt=&quot;clip_image013&quot; src=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TEfBYgcu_aI/AAAAAAAAAyo/J_Dkz7hKRTU/clip_image013_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;583&quot; height=&quot;406&quot;&gt;&lt;/a&gt; &lt;p&gt;이제 Secure Store Service에 MyDatabase라는 대상 응용프로그램 설정이 완료 되었습니다. 이 설정을 External Content Type에서 사용 해 보도록 하겠습니다. &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEfBZNDfTNI/AAAAAAAAAys/XFLUpqOgghU/s1600-h/clip_image014%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image014&quot; border=&quot;0&quot; alt=&quot;clip_image014&quot; src=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEfBZ4okLKI/AAAAAAAAAyw/M6r-qZR3QIg/clip_image014_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;491&quot; height=&quot;484&quot;&gt;&lt;/a&gt; &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TEfBa1K18RI/AAAAAAAAAy0/6Q6carDR8ss/s1600-h/clip_image015%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image015&quot; border=&quot;0&quot; alt=&quot;clip_image015&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEfBbfEsIqI/AAAAAAAAAy4/OvrVQJY6q4k/clip_image015_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;452&quot; height=&quot;484&quot;&gt;&lt;/a&gt; &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEfBcNpxtsI/AAAAAAAAAy8/XKudQa_E-KE/s1600-h/clip_image016%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image016&quot; border=&quot;0&quot; alt=&quot;clip_image016&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEfBciujmbI/AAAAAAAAAzA/Fo_qjP6AD0E/clip_image016_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;745&quot; height=&quot;391&quot;&gt;&lt;/a&gt; &lt;p&gt;앞서 말씀 드린 대로 Secure Store Service는 이전 버전의 SSO서비스 기능을 확장 해서 SharePoint 2010 의 인증 추가 기능은 Claim 티켓까지 사용 할 수 있도록 확장 되었습니다. 외부 시스템과의 연동 시에 Secure Store Service를 잘 활용 하면 보안 인증에 관련된 많은 부분을 손 쉽게 처리 할 수 있습니다.   </content><link rel='replies' type='application/atom+xml' href='http://teamplace.blogspot.com/feeds/2714655423233178932/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://teamplace.blogspot.com/2010/07/secure-store-service.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/2714655423233178932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/2714655423233178932'/><link rel='alternate' type='text/html' href='http://teamplace.blogspot.com/2010/07/secure-store-service.html' title='Secure Store Service'/><author><name>류경석</name><uri>http://www.blogger.com/profile/01431782672269467193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihdQxYJjlFKLzAEqJ3mWbUlBkX-Z9aerVmNCPGFCEjdPvFnyIAeTLKLMBmiFCf1HnxqtOAE2EHMhWuOFMmjJlQB5Sy0ngHms8FXFjz13OjgVgpht44gE2iwpaUfRMsxuM/s220/narzis.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_om2a49QhjVk/TEfBJNfMnrI/AAAAAAAAAxI/Opui2rgvTZY/s72-c/clip_image001_thumb%5B1%5D.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6558391903200367678.post-2494063719890557539</id><published>2010-07-20T23:55:00.001-07:00</published><updated>2010-07-20T23:55:16.793-07:00</updated><title type='text'>Business Connectivity Service를 이용한 SQL DB 연동</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;BCS(Business Connectivity Service)에 대해서 좀 알아 보고 데모를 만들어 볼까 합니다. &lt;p&gt;BCS는 SharePoint 2007의 BDC가 업그레이드 된 것으로 이름을 BCS로 바꿨습니다. &lt;p&gt;이름을 바꿀 정도면 많은 부분들이 바뀌었겠지요. 가장 눈에 띄는 부분은 BCS 뒷단 데이터저장소에 대한 Write지원입니다. 기존에는 거의 Read Only작업만을 수행 할 수 있었지요 &lt;p&gt;아울러 BCS구성을 위한 Desinger툴이 SharePoint Desinger 2010에 포함 되어 있다는 것 입니다. 기존에는 Application Definition파일을 수동으로 만들거나 Third party 툴을 사용 해야만 했었습니다. 이 SPD(SharePoint Desinger)안쪽의 툴이 CRUD작업의 코드를 자동으로 생성 해 주는 착한 일도 합니다. &lt;p&gt;이렇게 CRUD작업을 위해 BCS는 External Content Type이라는 개념을 도입해 SharePoint 목록(External List)과 바로 연결 할 수 있도록 구성 되어 있습니다. &lt;p&gt;MS SQL서버의 테이블을 외부 데이터로 설정하고 목록으로 노출 시키는 시나리오입니다. &lt;p&gt;먼저 샘플 DB를 생성 하도록 하겠습니다. &lt;p&gt;아래 스크립트로 MyDatabase라는 DB에 BCS 연결을 만들어 봅시다. &lt;p&gt;/************************************************ &lt;p&gt;CREATE DATABASE [MyDatabase]  &lt;p&gt;GO &lt;p&gt;Use MyDatabase &lt;p&gt;CREATE TABLE [dbo].[Customer]( &lt;p&gt;[CustomerId] [int] NOT NULL, &lt;p&gt;[FullName] [varchar](50) NOT NULL, &lt;p&gt;[ModifyDate] [datetime] NOT NULL, &lt;p&gt;[CreateDate] [datetime] NOT NULL, &lt;p&gt;CONSTRAINT [PK_Customer] PRIMARY KEY CLUSTERED  &lt;p&gt;( &lt;p&gt;[CustomerId] ASC &lt;p&gt;)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] &lt;p&gt;) ON [PRIMARY] &lt;p&gt;CREATE TABLE [dbo].[Order]( &lt;p&gt;[OrderId] [int] NOT NULL, &lt;p&gt;[CustomerId] [int] NOT NULL, &lt;p&gt;[Quantity] [int] NOT NULL, &lt;p&gt;[ModifyDate] [datetime] NOT NULL, &lt;p&gt;[CreateDate] [datetime] NOT NULL, &lt;p&gt;CONSTRAINT [PK_Order] PRIMARY KEY CLUSTERED  &lt;p&gt;( &lt;p&gt;[OrderId] ASC &lt;p&gt;)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] &lt;p&gt;) ON [PRIMARY] &lt;p&gt;GO &lt;p&gt;ALTER TABLE [dbo].[Order] WITH CHECK ADD CONSTRAINT [FK_Order_Customer] FOREIGN KEY([CustomerId]) &lt;p&gt;REFERENCES [dbo].[Customer] ([CustomerId]) &lt;p&gt;GO &lt;p&gt;ALTER TABLE [dbo].[Order] CHECK CONSTRAINT [FK_Order_Customer] &lt;p&gt;GO &lt;p&gt;ALTER TABLE [dbo].[Order] ADD CONSTRAINT [DF_Order_ModifyDate] DEFAULT (getdate()) FOR [ModifyDate] &lt;p&gt;GO &lt;p&gt;ALTER TABLE [dbo].[Order] ADD CONSTRAINT [DF_Order_CreateDate] DEFAULT (getdate()) FOR [CreateDate] &lt;p&gt;GO  &lt;p&gt;//-------------------------------------- &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEaZWqTgpvI/AAAAAAAAAt8/BiGH8AeWQXU/s1600-h/clip_image001%5B3%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001&quot; border=&quot;0&quot; alt=&quot;clip_image001&quot; src=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TEaZXgMHv-I/AAAAAAAAAuA/rfeZs5hL0SQ/clip_image001_thumb.png?imgmax=800&quot; width=&quot;172&quot; height=&quot;244&quot;&gt;&lt;/a&gt; &lt;p&gt;DB생성 이후 DB의 보안 설정에서 SharePoint 웹애플리케이션이 돌아가는 IIS Application Pool의 계정이 접근 권한을 적절히 줬는지 확인 해야 합니다. &lt;p&gt;이번 시나리오 에서는 이 MS SQL DB에 SharePoint Application Pool의 계정으로 접근 할 것이기 때문입니다. &lt;p&gt;SPD로 외부 데이터를 노출할 사이트를 엽니다. &lt;p&gt;&quot;탑색&quot; 창에서 &quot;외부 컨텐츠 형식&quot;을 클릭해서 &quot;외부 컨텐츠 형식&quot;을 새로 만듭니다. &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEaZYOjuy4I/AAAAAAAAAuE/O7yPjYxnRP0/s1600-h/clip_image002%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image002&quot; border=&quot;0&quot; alt=&quot;clip_image002&quot; src=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TEaZZP7ZWFI/AAAAAAAAAuI/45fFo9f8taQ/clip_image002_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;305&quot; height=&quot;469&quot;&gt;&lt;/a&gt; &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEaZZpRUTwI/AAAAAAAAAuM/xbKsOEhQrtM/s1600-h/clip_image003%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image003&quot; border=&quot;0&quot; alt=&quot;clip_image003&quot; src=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TEaZaGitl7I/AAAAAAAAAuQ/T62m7qFJanQ/clip_image003_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;576&quot; height=&quot;188&quot;&gt;&lt;/a&gt; &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEaZaysjzQI/AAAAAAAAAuU/vDdmsoACERQ/s1600-h/clip_image004%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image004&quot; border=&quot;0&quot; alt=&quot;clip_image004&quot; src=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEaZbimyIKI/AAAAAAAAAuY/InERAi7DKhw/clip_image004_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;439&quot; height=&quot;383&quot;&gt;&lt;/a&gt; &lt;p&gt;SQL서버를 선택합니다. &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TEaZcCmvLUI/AAAAAAAAAuc/vTQplSgXUlE/s1600-h/clip_image005%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image005&quot; border=&quot;0&quot; alt=&quot;clip_image005&quot; src=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TEaZcqjpZ5I/AAAAAAAAAug/biEOwohZr2I/clip_image005_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;317&quot; height=&quot;89&quot;&gt;&lt;/a&gt; &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TEaZdJ6p6JI/AAAAAAAAAuk/6cSlRP9A2OE/s1600-h/clip_image006%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image006&quot; border=&quot;0&quot; alt=&quot;clip_image006&quot; src=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEaZdwX9PmI/AAAAAAAAAuo/vZPNY_zefNo/clip_image006_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;470&quot; height=&quot;236&quot;&gt;&lt;/a&gt; &lt;p&gt;데이터베이스 이름을 제대로 설정하고 &quot;확인&quot;을 누릅니다. &lt;p&gt;아래 화면에서 &quot;모든 작업 만들기&quot;를 통해 이테이블에 대한 CRUD작업을 자동으로 생성합니다. &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEaZeWATueI/AAAAAAAAAus/uu373R2PMME/s1600-h/clip_image007%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image007&quot; border=&quot;0&quot; alt=&quot;clip_image007&quot; src=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TEaZezteJnI/AAAAAAAAAuw/SeDjhI1lyeM/clip_image007_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;347&quot; height=&quot;378&quot;&gt;&lt;/a&gt; &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TEaZfY9aOaI/AAAAAAAAAu0/kNmjZ0E5eaE/s1600-h/clip_image008%5B5%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image008&quot; border=&quot;0&quot; alt=&quot;clip_image008&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEaZgJ8CoSI/AAAAAAAAAu4/nyDnldm5u2g/clip_image008_thumb%5B2%5D.png?imgmax=800&quot; width=&quot;640&quot; height=&quot;484&quot;&gt;&lt;/a&gt; &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TEaZgmjpNTI/AAAAAAAAAu8/hAOe9sax2AM/s1600-h/clip_image009%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image009&quot; border=&quot;0&quot; alt=&quot;clip_image009&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEaZhfX53JI/AAAAAAAAAvA/TBC9AoO0ZdQ/clip_image009_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;571&quot; height=&quot;484&quot;&gt;&lt;/a&gt; &lt;p&gt;각 필드에 대해서 &quot;선택 컨트롤에 표시&quot;를 체크 합니다. &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEaZhzTFUZI/AAAAAAAAAvE/_ZZNnU2XqwY/s1600-h/clip_image010%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image010&quot; border=&quot;0&quot; alt=&quot;clip_image010&quot; src=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TEaZiotJ_YI/AAAAAAAAAvI/N5LPgftGVLk/clip_image010_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;570&quot; height=&quot;484&quot;&gt;&lt;/a&gt; &lt;p&gt;&quot;ModifyDate&quot; &quot;타임스탬프 필드&quot;를 체크해서 해당 Row의 timestamp역할을 하도록 설정합니다. &lt;p&gt;필터 구성은 이 시나리오에서 사용하지 않으므로 바로 마치면 아래와 같이 각 CRUD작업이 생성되어 있음을 확인 할 수 있습니다. &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEaZjIEYIvI/AAAAAAAAAvM/QZzKv1QyuNI/s1600-h/clip_image011%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image011&quot; border=&quot;0&quot; alt=&quot;clip_image011&quot; src=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TEaZjz_CnVI/AAAAAAAAAvQ/qZoSRnqXYes/clip_image011_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;644&quot; height=&quot;243&quot;&gt;&lt;/a&gt; &lt;p&gt;Ctrl+s를 눌러서 저장하면 이제 폼을 구성 하고 목록으로 만들어 노출 할 수 있습니다. &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TEaZkS9exnI/AAAAAAAAAvU/ETgZxck1VWU/s1600-h/clip_image012%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image012&quot; border=&quot;0&quot; alt=&quot;clip_image012&quot; src=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEaZk1nJxdI/AAAAAAAAAvY/3QH0wLbmnAE/clip_image012_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;632&quot; height=&quot;108&quot;&gt;&lt;/a&gt; &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TEaZlomf1oI/AAAAAAAAAvc/l-fFFNj65J8/s1600-h/clip_image013%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image013&quot; border=&quot;0&quot; alt=&quot;clip_image013&quot; src=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEaZm5oVmTI/AAAAAAAAAvg/DZYZxBR-9wc/clip_image013_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;311&quot; height=&quot;122&quot;&gt;&lt;/a&gt; &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEaZncv1KII/AAAAAAAAAvk/tSErleVuueo/s1600-h/clip_image014%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image014&quot; border=&quot;0&quot; alt=&quot;clip_image014&quot; src=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TEaZn0DUNGI/AAAAAAAAAvo/J9nnomCHlB8/clip_image014_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;583&quot; height=&quot;260&quot;&gt;&lt;/a&gt; &lt;p&gt;목록 이름을 설정하고 확인을 클릭 &lt;p&gt;이제 바로가기 메뉴에 &quot;Customer&quot; 목록이 나오는 것을 확인 할 수 있습니다. 하지만 아래와 같이 접근이 되지 않고 에러가 납니다. &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEaZoYejrwI/AAAAAAAAAvs/A-EwoUqZ6Mg/s1600-h/clip_image015%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image015&quot; border=&quot;0&quot; alt=&quot;clip_image015&quot; src=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEaZpLvgpCI/AAAAAAAAAvw/uM8JW3NJXwY/clip_image015_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;475&quot; height=&quot;270&quot;&gt;&lt;/a&gt; &lt;p&gt;중앙관리 사이트에서 해당 BCS개체의 사용 권한을 추가 해 줘야 합니다. &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEaZpofiqpI/AAAAAAAAAv0/Ftckm6ubeAA/s1600-h/clip_image016%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image016&quot; border=&quot;0&quot; alt=&quot;clip_image016&quot; src=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TEaZqXX29fI/AAAAAAAAAv4/XKCl2uEfM3k/clip_image016_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;381&quot; height=&quot;226&quot;&gt;&lt;/a&gt; &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEaZq6ah6kI/AAAAAAAAAv8/DSXjioL79Gw/s1600-h/clip_image017%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image017&quot; border=&quot;0&quot; alt=&quot;clip_image017&quot; src=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TEaZrj5L7YI/AAAAAAAAAwA/ZxqL6B1iCtU/clip_image017_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;669&quot; height=&quot;245&quot;&gt;&lt;/a&gt; &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEaZsP6yfGI/AAAAAAAAAwE/HnyzPVM-dzM/s1600-h/clip_image018%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image018&quot; border=&quot;0&quot; alt=&quot;clip_image018&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEaZsvHgFpI/AAAAAAAAAwI/GQ2H_3eMXMs/clip_image018_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;448&quot; height=&quot;370&quot;&gt;&lt;/a&gt; &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TEaZtZTaagI/AAAAAAAAAwM/UYRHfL731pk/s1600-h/clip_image019%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image019&quot; border=&quot;0&quot; alt=&quot;clip_image019&quot; src=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEaZtyVpA9I/AAAAAAAAAwQ/YXFeKz7M64c/clip_image019_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;386&quot; height=&quot;309&quot;&gt;&lt;/a&gt; &lt;p&gt;권한 설정 화면에서 찾을 이름을 &quot;authenticated users&quot;라고 치고 이름을 확인 합니다. &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEaZuV4pt8I/AAAAAAAAAwU/HX2rW0eJ3Us/s1600-h/clip_image020%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image020&quot; border=&quot;0&quot; alt=&quot;clip_image020&quot; src=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TEaZu77QBII/AAAAAAAAAwY/ZlqwGv5ydbM/clip_image020_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;463&quot; height=&quot;245&quot;&gt;&lt;/a&gt; &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TEaZvg6d0GI/AAAAAAAAAwc/IwuYX-AYbps/s1600-h/clip_image021%5B5%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image021&quot; border=&quot;0&quot; alt=&quot;clip_image021&quot; src=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEaZwOJY47I/AAAAAAAAAwg/P6ZryuAsL-o/clip_image021_thumb%5B2%5D.png?imgmax=800&quot; width=&quot;537&quot; height=&quot;484&quot;&gt;&lt;/a&gt; &lt;p&gt;모든 사용자를 추가 하고 각 권한을 체크 한 후 확인을 클릭합니다. &lt;p&gt;이제 다시 Customer목록으로 돌아와 접근이 되는지 확인 합니다. &lt;p&gt;한번 새로운 데이터를 만들어 보겠습니다. &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEaZwyF54SI/AAAAAAAAAwk/jhysxkd281I/s1600-h/clip_image022%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image022&quot; border=&quot;0&quot; alt=&quot;clip_image022&quot; src=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TEaZxVoSL4I/AAAAAAAAAwo/o6P8dMhBDyg/clip_image022_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;392&quot; height=&quot;259&quot;&gt;&lt;/a&gt; &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TEaZxx49a3I/AAAAAAAAAws/0TQ6yEfHrnY/s1600-h/clip_image023%5B5%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image023&quot; border=&quot;0&quot; alt=&quot;clip_image023&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEaZylbYs3I/AAAAAAAAAww/0YVhqNABUew/clip_image023_thumb%5B2%5D.png?imgmax=800&quot; width=&quot;644&quot; height=&quot;415&quot;&gt;&lt;/a&gt; &lt;p&gt;데이터를 입력하고 저장 합니다. &lt;p&gt;아래와 같이 목록에 입력된 내용이 표시 되는 것을 확인 할 수 있습니다. &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEaZzIEOvAI/AAAAAAAAAw0/isRrmMK1QK4/s1600-h/clip_image024%5B5%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image024&quot; border=&quot;0&quot; alt=&quot;clip_image024&quot; src=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TEaZzkttMtI/AAAAAAAAAw4/cDQfQAk55aA/clip_image024_thumb%5B2%5D.png?imgmax=800&quot; width=&quot;644&quot; height=&quot;122&quot;&gt;&lt;/a&gt; &lt;p&gt;DB에서 Query를 직접 해서 테이블에 입력이 되었는지 확인 해 보겠습니다. &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TEaZ0ceZYEI/AAAAAAAAAw8/UFXGuBt5lAg/s1600-h/clip_image025%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image025&quot; border=&quot;0&quot; alt=&quot;clip_image025&quot; src=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TEaZ05OmC4I/AAAAAAAAAxA/FaNOma3Vh2g/clip_image025_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;466&quot; height=&quot;252&quot;&gt;&lt;/a&gt; &lt;p&gt;위와 같이 DB입력 까지 된 것을 확인 했습니다. &lt;p&gt;SharePoint 2010의 BCS기능은 External Content Type과 External List의 도입으로 기존 LoB Application의 데이터를 SharePoint Presentation까지 별도의 코드가 거의 없이 바로 표현이 가능 할 뿐 아니라 Data의 CRUD전체 작업을 할 수 있습니다.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://teamplace.blogspot.com/feeds/2494063719890557539/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://teamplace.blogspot.com/2010/07/business-connectivity-service-sql-db.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/2494063719890557539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/2494063719890557539'/><link rel='alternate' type='text/html' href='http://teamplace.blogspot.com/2010/07/business-connectivity-service-sql-db.html' title='Business Connectivity Service를 이용한 SQL DB 연동'/><author><name>류경석</name><uri>http://www.blogger.com/profile/01431782672269467193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihdQxYJjlFKLzAEqJ3mWbUlBkX-Z9aerVmNCPGFCEjdPvFnyIAeTLKLMBmiFCf1HnxqtOAE2EHMhWuOFMmjJlQB5Sy0ngHms8FXFjz13OjgVgpht44gE2iwpaUfRMsxuM/s220/narzis.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_om2a49QhjVk/TEaZXgMHv-I/AAAAAAAAAuA/rfeZs5hL0SQ/s72-c/clip_image001_thumb.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6558391903200367678.post-6508092209389295073</id><published>2010-07-05T23:43:00.001-07:00</published><updated>2010-07-05T23:43:51.636-07:00</updated><title type='text'>SharePoint 2010 Form기반 인증 설정하기</title><content type='html'>&lt;p&gt;SharePoint 2010 에서 Form 기반 인증 하는 방법을 정리 해 봅니다. &lt;p&gt;SharePoint 2010은 Form기반 인증할 때 Security Token Service를 통한 Claim 기반 인증을 사용 하도록 변경 되었습니다. &lt;p&gt;설정을 해야 하는 web.config 가 하나 더 있는 셈입니다.  &lt;p&gt;단계를 정리 해 보자면 &lt;p&gt;1. 해당 Web Application의 Web.config 수정 &lt;p&gt;2. STS Web Service Web.config 수정 &lt;p&gt;3. 중앙 관리 사이트 Web.config 수정 &lt;p&gt;4. Web Application에 관리자 계정 권한 추가 &lt;p&gt;이런 순서라고 보시면 됩니다. &lt;p&gt;일단 Form기반 인증을 설정할 Web Application을 생성 하겠습니다. &lt;p&gt;SharePoint 중앙관리 사이트를 열어 응용 프로그램 관리 메뉴로 들어 갑니다. &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TDLQNppKdbI/AAAAAAAAArg/ELUBMhlOR_E/s1600-h/clip_image002%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image002&quot; border=&quot;0&quot; alt=&quot;clip_image002&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TDLQOY9deuI/AAAAAAAAArk/W8VHZzUtn9E/clip_image002_thumb%5B1%5D.jpg?imgmax=800&quot; width=&quot;552&quot; height=&quot;360&quot;&gt;&lt;/a&gt; &lt;p&gt;새 웹 응용 프로그램 만들기 창에서 인증 값을 &quot;클레임 기반 인증&quot;으로 설정 하고 클레임 인증 유형에 &quot;FBA&quot;를 선택 합니다. - 번역은 &quot;양식 기반 인증&quot; 이군요 제발 form을 양식으로 번역 하지 않았으면 좋겠습니다만-  &lt;p&gt;ASP.NET 멤버 자격 공급자 이름 에 &quot;LdapMemeber&quot;, ASP.NET 역할 자격 공급자 이름에 &quot;LdapRole&quot;이라고 설정 합니다. 이 값은 web.config 파일들에서 설정할 이름이기 때문에 그 provider이름과 맞춰만 준다면 상관 없습니다. &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TDLQO1UP1ZI/AAAAAAAAAro/fNe-02cU-CI/s1600-h/clip_image004%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image004&quot; border=&quot;0&quot; alt=&quot;clip_image004&quot; src=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TDLQPkpxzCI/AAAAAAAAArs/jyyrl8p-XLg/clip_image004_thumb%5B1%5D.jpg?imgmax=800&quot; width=&quot;639&quot; height=&quot;578&quot;&gt;&lt;/a&gt; &lt;p&gt;클레임 인증 유형에서 Windows 인증 사용은 그대로 둬야 합니다. 빼면 검색엔진이 이 사이트를 검색 할 수 없게 됩니다. &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TDLQQf755sI/AAAAAAAAArw/rgGSALvv-Nc/s1600-h/clip_image006%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image006&quot; border=&quot;0&quot; alt=&quot;clip_image006&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TDLQRKsm57I/AAAAAAAAAr0/OdFaVKw9Ff0/clip_image006_thumb%5B1%5D.jpg?imgmax=800&quot; width=&quot;639&quot; height=&quot;576&quot;&gt;&lt;/a&gt; &lt;p&gt;나머지 값은 그대로 두고 확인을 눌러 응용 프로그램을 만듭니다. 이후에 바로 사이트 모음을 바로 만드는게 좋습니다.  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TDLQR0M3h5I/AAAAAAAAAr4/TB3Cq_cAo6s/s1600-h/clip_image008%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image008&quot; border=&quot;0&quot; alt=&quot;clip_image008&quot; src=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TDLQSURM7dI/AAAAAAAAAr8/2QWzg9QBekU/clip_image008_thumb%5B1%5D.jpg?imgmax=800&quot; width=&quot;506&quot; height=&quot;292&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TDLQS_Chi4I/AAAAAAAAAsA/VijTwbkHIEc/s1600-h/clip_image010%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image010&quot; border=&quot;0&quot; alt=&quot;clip_image010&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TDLQTxcLQBI/AAAAAAAAAsE/i12ZpDcRxzc/clip_image010_thumb%5B1%5D.jpg?imgmax=800&quot; width=&quot;647&quot; height=&quot;509&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TDLQUfOkBHI/AAAAAAAAAsI/dAzrdGc5KKU/s1600-h/clip_image012%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image012&quot; border=&quot;0&quot; alt=&quot;clip_image012&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TDLQVFhaeiI/AAAAAAAAAsM/alNR-l6Y_d4/clip_image012_thumb%5B1%5D.jpg?imgmax=800&quot; width=&quot;639&quot; height=&quot;576&quot;&gt;&lt;/a&gt; &lt;p&gt;이제 Memebership과 Role Provider설정을 각 web.config 에 할 순서 입니다. &lt;p&gt;방금 생성한 Web Application의 web.config 파일을 열어 아래와 같이 추가 합니다. &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TDLQV7Eu4aI/AAAAAAAAAsQ/J2rUDaP6Mc4/s1600-h/clip_image014%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image014&quot; border=&quot;0&quot; alt=&quot;clip_image014&quot; src=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TDLQWsndxsI/AAAAAAAAAsU/3Kp-u8Ni6wQ/clip_image014_thumb%5B1%5D.jpg?imgmax=800&quot; width=&quot;978&quot; height=&quot;607&quot;&gt;&lt;/a&gt; &lt;p&gt;중앙 관리 사이트의 web.config 파일도 열어서 아래와 같이 설정 합니다. &lt;p&gt;&amp;lt;membership&amp;gt; &lt;p&gt;&amp;lt;providers&amp;gt; &lt;p&gt;&amp;lt;add name=&quot;LdapMember&quot; type=&quot;Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server,Version=14.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c&quot; &lt;p&gt;server=&quot;win2k8r2&quot; &lt;p&gt;port=&quot;389&quot; &lt;p&gt;useSSL=&quot;false&quot; &lt;p&gt;userDNAttribute=&quot;distinguishedName&quot; &lt;p&gt;userNameAttribute=&quot;sAMAccountName&quot; &lt;p&gt;userContainer=&quot;CN=Users,DC=Contoso,DC=Com&quot; &lt;p&gt;userObjectClass=&quot;person&quot; &lt;p&gt;userFilter=&quot;(ObjectClass=person)&quot; &lt;p&gt;scope=&quot;Subtree&quot; &lt;p&gt;otherRequiredUserAttributes=&quot;sn,givenname,cn&quot;/&amp;gt; &lt;p&gt;&amp;lt;/providers&amp;gt; &lt;p&gt;&amp;lt;/membership&amp;gt; &lt;p&gt;&amp;lt;roleManager enabled =&quot;true&quot; defaultProvider=&quot;AspNetWindowsTokenRoleProvider&quot;&amp;gt; &lt;p&gt;&amp;lt;providers&amp;gt; &lt;p&gt;&amp;lt;add name=&quot;LdapRole&quot; type=&quot;Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server,Version=14.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c&quot; &lt;p&gt;server=&quot;win2k8r2&quot; &lt;p&gt;port=&quot;389&quot; &lt;p&gt;useSSL=&quot;false&quot; &lt;p&gt;groupContainer=&quot;CN=Users,DC=Contoso,DC=Com&quot; &lt;p&gt;groupNameAttribute=&quot;cn&quot; &lt;p&gt;groupNameAlternateSearchAttribute=&quot;samAccountName&quot; &lt;p&gt;groupMemberAttribute=&quot;member&quot; &lt;p&gt;userNameAttribute=&quot;sAMAccountName&quot; &lt;p&gt;dnAttribute=&quot;distinguishedName&quot; &lt;p&gt;groupFilter=&quot;(ObjectClass=group)&quot; &lt;p&gt;userFilter=&quot;(ObjectClass=person)&quot; &lt;p&gt;scope=&quot;Subtree&quot; &lt;p&gt;/&amp;gt; &lt;p&gt;&amp;lt;/providers&amp;gt; &lt;p&gt;&amp;lt;/roleManager&amp;gt; &lt;p&gt;마지막으로 STS Web Service의 web.config 파일을 설정 합니다. STS 서비스는 아래 그림과 같은 경로에서 찾을 수 있습니다. &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TDLQXXDw1uI/AAAAAAAAAsY/x_cRnO4-I7A/s1600-h/clip_image016%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image016&quot; border=&quot;0&quot; alt=&quot;clip_image016&quot; src=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TDLQYBdT3cI/AAAAAAAAAsc/Wf0TCdZ_kUM/clip_image016_thumb%5B1%5D.jpg?imgmax=800&quot; width=&quot;674&quot; height=&quot;556&quot;&gt;&lt;/a&gt; &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TDLQYxTtKdI/AAAAAAAAAsg/tjf-tNH2Vcw/s1600-h/clip_image018%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image018&quot; border=&quot;0&quot; alt=&quot;clip_image018&quot; src=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TDLQZpwzaNI/AAAAAAAAAsk/b7JdDhZLkBo/clip_image018_thumb%5B1%5D.jpg?imgmax=800&quot; width=&quot;284&quot; height=&quot;242&quot;&gt;&lt;/a&gt; &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TDLQaAMOfzI/AAAAAAAAAso/qWE1ah1nSOQ/s1600-h/clip_image020%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image020&quot; border=&quot;0&quot; alt=&quot;clip_image020&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TDLQajzI-1I/AAAAAAAAAss/foRzUsPbe4o/clip_image020_thumb%5B1%5D.jpg?imgmax=800&quot; width=&quot;685&quot; height=&quot;202&quot;&gt;&lt;/a&gt; &lt;p&gt;STS의 web.config파일을 설정 할 때는 roleManager element의 defaultProvider 속성 값을 빼야 합니다. &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TDLQbibk4AI/AAAAAAAAAsw/Mysfom6XraM/s1600-h/clip_image022%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image022&quot; border=&quot;0&quot; alt=&quot;clip_image022&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TDLQcSgJNoI/AAAAAAAAAs0/fZWBwWRQjvM/clip_image022_thumb%5B1%5D.jpg?imgmax=800&quot; width=&quot;694&quot; height=&quot;607&quot;&gt;&lt;/a&gt; &lt;p&gt;이제 중앙관리 사이트의 응용 프로그램 관리 메뉴로 돌아 옵니다.  &lt;p&gt;추가한 응용프로그램에 form기반 인증의 관리자를 추가 해야 합니다. &lt;p&gt;아래와 같이 추가한 웹 응용프로그램을 선택하고 &quot;사용자 정책&quot;을 선택합니다. &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TDLQeMuUiNI/AAAAAAAAAs4/gR2klF3Py2w/s1600-h/clip_image024%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image024&quot; border=&quot;0&quot; alt=&quot;clip_image024&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TDLQe8FvvQI/AAAAAAAAAs8/jh_p-rU1sVg/clip_image024_thumb%5B1%5D.jpg?imgmax=800&quot; width=&quot;733&quot; height=&quot;303&quot;&gt;&lt;/a&gt; &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TDLQfZVIyKI/AAAAAAAAAtA/lmf3IvnM2tE/s1600-h/clip_image026%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image026&quot; border=&quot;0&quot; alt=&quot;clip_image026&quot; src=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TDLQgXp0lAI/AAAAAAAAAtE/rmTYg_WRloQ/clip_image026_thumb%5B1%5D.jpg?imgmax=800&quot; width=&quot;510&quot; height=&quot;307&quot;&gt;&lt;/a&gt; &lt;p&gt;영역선택에서 &quot;기본&quot;을 선택합니다. &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TDLQg172LsI/AAAAAAAAAtI/l4j7fl00UoU/s1600-h/clip_image028%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image028&quot; border=&quot;0&quot; alt=&quot;clip_image028&quot; src=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TDLQiIBgbhI/AAAAAAAAAtM/7lep3ATiJbA/clip_image028_thumb%5B1%5D.jpg?imgmax=800&quot; width=&quot;508&quot; height=&quot;251&quot;&gt;&lt;/a&gt; &lt;p&gt;사용자 선택에서 주소록 아이콘을 클릭합니다. &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TDLQi8Kl-1I/AAAAAAAAAtQ/KPQzwwIHLQQ/s1600-h/clip_image030%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image030&quot; border=&quot;0&quot; alt=&quot;clip_image030&quot; src=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TDLQjljqpQI/AAAAAAAAAtU/lQPoAm9XRlU/clip_image030_thumb%5B1%5D.jpg?imgmax=800&quot; width=&quot;602&quot; height=&quot;469&quot;&gt;&lt;/a&gt; &lt;p&gt;Administrator를 검색하면 아래와 같이 AD와 Form두개의 검색 결과가 나오는 것을 확인 해 볼 수 있습니다. &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TDLQkcfp5RI/AAAAAAAAAtY/N9I-RELopws/s1600-h/clip_image032%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image032&quot; border=&quot;0&quot; alt=&quot;clip_image032&quot; src=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TDLQln4-VeI/AAAAAAAAAtc/Dk3ZsvrCICw/clip_image032_thumb%5B1%5D.jpg?imgmax=800&quot; width=&quot;583&quot; height=&quot;526&quot;&gt;&lt;/a&gt; &lt;p&gt;Form인증의 Administrator을 추가 하고 확인 한 후 빠져나옵니다. &lt;p&gt;이제 해당 응용프로그램을 브라우져를 통해 들어가 보면 아래와 같이 자격 증며을 선택 하는 화면이 나오고 &quot;양식 인증&quot;을 선택 하면 그 아래와 같이 기본 login 화면이 나타나게 됩니다. &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_om2a49QhjVk/TDLQmFGVb8I/AAAAAAAAAtg/XeJ6WlMLKdA/s1600-h/clip_image034%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image034&quot; border=&quot;0&quot; alt=&quot;clip_image034&quot; src=&quot;http://lh5.ggpht.com/_om2a49QhjVk/TDLQnEUGnUI/AAAAAAAAAtk/-Bd1tGI4JJQ/clip_image034_thumb%5B1%5D.jpg?imgmax=800&quot; width=&quot;597&quot; height=&quot;243&quot;&gt;&lt;/a&gt; &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TDLQnsdW84I/AAAAAAAAAto/9A0osBjPhB8/s1600-h/clip_image036%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image036&quot; border=&quot;0&quot; alt=&quot;clip_image036&quot; src=&quot;http://lh6.ggpht.com/_om2a49QhjVk/TDLQoBknyjI/AAAAAAAAAts/mOwu52CHZLk/clip_image036_thumb%5B1%5D.jpg?imgmax=800&quot; width=&quot;577&quot; height=&quot;259&quot;&gt;&lt;/a&gt; &lt;p&gt;제대로 인증에 성공하면 아래와 같이 환영 메시지를 볼 수 있습니다. &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TDLQo5ch_yI/AAAAAAAAAtw/UHGZYKx0Nx0/s1600-h/clip_image038%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image038&quot; border=&quot;0&quot; alt=&quot;clip_image038&quot; src=&quot;http://lh3.ggpht.com/_om2a49QhjVk/TDLQpq8mKuI/AAAAAAAAAt0/_C9wB0RNqHc/clip_image038_thumb%5B1%5D.jpg?imgmax=800&quot; width=&quot;735&quot; height=&quot;595&quot;&gt;&lt;/a&gt;  </content><link rel='replies' type='application/atom+xml' href='http://teamplace.blogspot.com/feeds/6508092209389295073/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://teamplace.blogspot.com/2010/07/sharepoint-2010-form_05.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/6508092209389295073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/6508092209389295073'/><link rel='alternate' type='text/html' href='http://teamplace.blogspot.com/2010/07/sharepoint-2010-form_05.html' title='SharePoint 2010 Form기반 인증 설정하기'/><author><name>류경석</name><uri>http://www.blogger.com/profile/01431782672269467193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihdQxYJjlFKLzAEqJ3mWbUlBkX-Z9aerVmNCPGFCEjdPvFnyIAeTLKLMBmiFCf1HnxqtOAE2EHMhWuOFMmjJlQB5Sy0ngHms8FXFjz13OjgVgpht44gE2iwpaUfRMsxuM/s220/narzis.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_om2a49QhjVk/TDLQOY9deuI/AAAAAAAAArk/W8VHZzUtn9E/s72-c/clip_image002_thumb%5B1%5D.jpg?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6558391903200367678.post-2186042864356649967</id><published>2010-07-01T05:10:00.001-07:00</published><updated>2010-07-01T05:10:14.836-07:00</updated><title type='text'>텍스트 큐브에서 다시 이사옵니다.</title><content type='html'>&lt;p&gt;구글에서 textcube.com 블로그를 더이상 지원 하지 않는다는 군요 T.T&lt;/p&gt; &lt;p&gt;sharedmind.textcube.com 블로그를 이쪽으로 다시 옮겨와야 할 것 같습니다.&lt;/p&gt; &lt;p&gt;다음주 부터 SharePoint 프로젝트에 투입 됩니다. 재미있을 것 같은데요 블로깅 할 꺼리도 많을 것 같고 SharePoint 2010으로 진행 하는 첫 프로젝이 될 것 같습니다.&lt;/p&gt; &lt;p&gt;조만간 새로운 포스팅으로 뵙도록 하겠습니다.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://teamplace.blogspot.com/feeds/2186042864356649967/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://teamplace.blogspot.com/2010/07/blog-post.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/2186042864356649967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6558391903200367678/posts/default/2186042864356649967'/><link rel='alternate' type='text/html' href='http://teamplace.blogspot.com/2010/07/blog-post.html' title='텍스트 큐브에서 다시 이사옵니다.'/><author><name>류경석</name><uri>http://www.blogger.com/profile/01431782672269467193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihdQxYJjlFKLzAEqJ3mWbUlBkX-Z9aerVmNCPGFCEjdPvFnyIAeTLKLMBmiFCf1HnxqtOAE2EHMhWuOFMmjJlQB5Sy0ngHms8FXFjz13OjgVgpht44gE2iwpaUfRMsxuM/s220/narzis.png'/></author><thr:total>0</thr:total></entry></feed>