검색결과 리스트
IT/Dot Net에 해당되는 글 36건
- 2012/05/18 윈도우 폼 개발후 배포시 사이즈가 이상하다...?
- 2012/02/08 asp.net development server port issue
- 2012/01/12 [펌]Visual Studio 2010 OutOfMemoryException
- 2011/05/03 유용한 Extension Method 하나
- 2011/04/06 C# 으로 안드로이드 또는 아이폰 어플 개발
- 2010/11/12 [FarPoint Spread]데이터와 헤더라벨을 고려한 컬럼너비 자동조정 구현
- 2010/11/05 [펌]Clickonce 인증서 만료시 해결책 - 기존 인증서 만료기간 수정
- 2010/09/17 [이벤트] Windows 7 BIG3 개발 고수되기!
- 2010/09/03 FileTracker : error FTK1011 (2)
- 2010/08/27 CopySourceAsHtml 에러 수정
글
윈도우 폼 개발후 배포시 사이즈가 이상하다...?
AutoScaleMode열거형
Windows Forms에서 지원하는 여러 종류의 자동 크기 조정 모드를 지정합니다.
네임스페이스: System.Windows.Forms
어셈블리: System.Windows.Forms(System.Windows.Forms.dll)
public enum AutoScaleMode
멤버 이름 | 설명 |
None | 자동 크기조정을 사용할 수 없습니다. |
Font | 클래스에서 사용하는글꼴(대개 시스템 글꼴)의 크기를 기준으로 크기를 제어합니다. |
Dpi | 디스플레이 해상도를 기준으로 크기를 제어합니다.일반적인 해상도는 96DPI와 120DPI입니다. |
Inherit | 클래스의 부모 크기 조정 모드에 따라 크기를 제어합니다.부모가 없는 경우 자동 크기 조정을 사용할 수 없습니다. |
ContainerControl 클래스와 이 클래스에서 파생된 Form 등의 클래스에서는 해당 항목 자체와 내용의 크기를 현재 시스템 글꼴 또는 디스플레이 해상도(DPI)에 따라 자동으로 조정할 수 있습니다.AutoScaleMode 열거형은 이러한 클래스와 이러한 클래스의 파생 형식에서 지원하는 자동 크기 조정 모드를 정의합니다.컨트롤의 현재 모드는 ContainerControl.AutoScaleMode 속성을 통해 액세스할 수 있습니다.
대부분의 비즈니스 응용 프로그램에서는 Font 자동 크기 조정 모드를 사용해야 합니다.Dpi 크기 조정 모드는 그래픽 기반 응용 프로그램에 유용하며 .NET Compact Framework에서 사용하는 기본 크기 조정 기능과 호환됩니다.
중요 |
.NET Framework 버전 1.0 및 1.1에서 지원되는 자동 크기 조정 기능은 항상 현재 시스템 글꼴에 따라 달라지는 단순한 메커니즘을 사용했습니다.이 메커니즘은 더 이상 사용되지 않지만 이전 버전과의 호환성을 위해 여전히 지원됩니다.포함하는 Form의 AutoScale 속성을 true로 설정하여 이전의 크기 조정 동작을 가져올 수 있습니다. 이러한 작업을 수행하면 ContainerControl.AutoScaleMode 속성도 None으로 암시적으로 설정됩니다.반면에 폼의 ContainerControl.AutoScaleMode 속성을 설정하면 AutoScale이 false로 설정되어.NET Framework 버전 2.0에서 도입된 새로운 크기 조정 메커니즘을 사용하게 됩니다. |
Smartphone 응용 프로그램에서 이 열거형을 사용하려면 Smartphone용 Windows Mobile 버전 5.0 소프트웨어가필요합니다.
.NET Framework
4, 3.5, 3.0, 2.0에서 지원
.NET Framework Client Profile
4, 3.5 SP1에서 지원
Windows 7, Windows Vista SP1 이상, Windows XP SP3, Windows XP SP2 x64 버전,Windows Server 2008(Server Core는 지원되지 않음), Windows Server 2008 R2(Server Core는SP1 이상에서 지원됨), Windows Server 2003 SP2
.NET Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.
참조
ContainerControl.AutoScaleMode
이 정보가 도움이 되었습니까? 예아니요
<http://msdn.microsoft.com/ko-kr/library/system.windows.forms.autoscalemode.aspx>에서 삽입
MSDN 에서 발췌한 내용이다.
보통 잘 신경쓰지 않는 속성 하나 때문에 고생 좀 했다...
C# 으로 윈폼 어플 개발을 했는데.... 대부분의 컨트롤을 GDI+ 로 직접 그려줘야 했다...
그리고, 당당하게 1차 중간점검을 위해 업체에 가서 설명하고 테스트 했다... (물론 내 노트북에서...)
그리고, 집으로 돌아오는 길에 윈도우8 에서 실행하니 일부 컨트롤이 깨져서 보인네요... ^,.^;;;; 머지???
그래서 Virtual Box 에 직접 설치해서 실행해 보니... 이런... 엉망이다... 머지? 아직 Preview 버전이라 그런가... 내 노트북과 데스크탑... 그리고 업체에서도 아무말 없었는데.... 하필 윈도우8 에 배포될거란다... 헉... 실컷 했는데...다 무용지물인가? ㅋㅋ...
노트북에 Visual Studio 11 beta 를 깔아서 다시 빌드한후 윈도우8 에서 실행해 보면..또 마찬가지... 우쒸~
그래서 Virtual Box 에 VS 2010 을 직접 설치해서 디버깅 해 보았다...
특정 컨트롤을 잡아서 디버깅을 했는데... 분명 해당 컨트롤은 사이즈가 고정값으로 할당하게 되어 있는데... 생성자에서 고정값으로 할당하고
OnPaint 에서 영역게산 하는 부분에서 ClientRectangle 을 BreakPoint 걸어서 확인해 보면 사이즈가 이상하게 변경되어 있다...
머지?? ㅡㅡ;;
머 이래 저래 삽질 하다가 결국 위 프로퍼티가 문제....
System.Windows.Forms.ContainerControl 를 상속받아서 AutoScaleMode 속성이 있는 모든 컨트롤의 속성을 변경해 주기로 했다. (DPI 로)
아래는 AutoScaleMode 소스...
/// <summary>
/// 컨트롤의 자동 크기 조정 모드를 가져오거나 설정합니다.
/// </summary>
///
/// <returns>
/// 현재 크기 조정 모드를 나타내는 <see cref="T:System.Windows.Forms.AutoScaleMode"/>입니다.기본값은 <see cref="F:System.Windows.Forms.AutoScaleMode.None"/>입니다.
/// </returns>
/// <exception cref="T:System.ComponentModel.InvalidEnumArgumentException">유효하지 않은 <see cref="T:System.Windows.Forms.AutoScaleMode"/> 값을 사용하여 이 속성을 설정한 경우</exception>
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[SRCategory("CatLayout")]
[SRDescription("ContainerControlAutoScaleModeDescr")]
[EditorBrowsable(EditorBrowsableState.Advanced)]
public AutoScaleMode AutoScaleMode
{
get
{
return this.autoScaleMode;
}
set
{
if (!System.Windows.Forms.ClientUtils.IsEnumValid((Enum) value, (int) value, 0, 3))
throw new InvalidEnumArgumentException("value", (int) value, typeof (AutoScaleMode));
bool flag = false;
if (value != this.autoScaleMode)
{
if (this.autoScaleMode != AutoScaleMode.Inherit)
this.autoScaleDimensions = SizeF.Empty;
this.currentAutoScaleDimensions = SizeF.Empty;
this.autoScaleMode = value;
flag = true;
}
this.OnAutoScaleModeChanged();
if (!flag)
return;
this.LayoutScalingNeeded();
}
}
autoScaleDimensions 도 바뀐다...
현재 내 노트북 (굴림, 9pt) <=> VirtualBox 에 설치된 윈도우8 (Microsoft Sans Serif, 8.5pt)
으... 영문이 이었지... 폰트가 다르다.. 그래서 폰트에따라 Scaling 다르게 적용되다 보니... 쩝...
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); |
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; |
지금까지는 영문판에 배포해서 이상하면 걍 폰트롤 맞추거나 했는데...
디자이너 띄워서 아예 ScaleMode 를 DPI 로 변경하니...그대로 잘 적용된다...
물론 메인 폼 뿐만 아니라...System.Windows.Forms.ContainerControl 를 상속받는 모든 컨트롤의 속성을 변경해 줘야 한다는 점이 중요 !!
혹시나 다음에 잊어버릴까바... 장황하게 코멘트(?) 한다...
아유... 이거 삽질한다고.. 진도 하나도 못 나갔네 ㅠ,.ㅠ
결국...GDI+ 탓도...윈도우8 탓도... 영문판이라는 탓도 할 수 없다. 매커니즘을 제대로 파악하지 않았고...그동안 그냥 대충 넘어가서 그런가 보다...
되도록 이면 조금 이라도 더 깊이 제대로 이해하고 넘어가야 하겠다...
'IT > Dot Net' 카테고리의 다른 글
| 윈도우 폼 개발후 배포시 사이즈가 이상하다...? (0) | 2012/05/18 |
|---|---|
| asp.net development server port issue (0) | 2012/02/08 |
| [펌]Visual Studio 2010 OutOfMemoryException (0) | 2012/01/12 |
| 유용한 Extension Method 하나 (0) | 2011/05/03 |
| C# 으로 안드로이드 또는 아이폰 어플 개발 (0) | 2011/04/06 |
| [FarPoint Spread]데이터와 헤더라벨을 고려한 컬럼너비 자동조정 구현 (0) | 2010/11/12 |
글
asp.net development server port issue
지금껏 C/S 만 위주로 개발을 하다 오랜만에 Web 관련 프로젝트를 하고있다..
물론 Silverlight 라서 크게 문제되지는 않지만 8, 9 년 전에 PHP 하던게 Web 관련 일은 전부인지라...
이것 저것 걸리는게 많다...
그 와중에 간간히.. 때때로 매번.... Silverlight 쪽 소스 변경한 것을 확인할려고 솔루션 탐색기의 Web Project 를
디버그 모드로 실행하면("마우스 우클릭=>디버그=>새 인스턴스 시작") 위와 같은 에러가 난다... 팝업창을 닫으면
디버깅이 종료되서 팝업창을 닫지 않고 그냥 진행해 보면 마지막 소스가 반영되지 않아서 인지 브레이크 포인트에 걸리지도 않는다..
난 분명히 소스를 수정하고 디버깅 했는데... 안된다... WPF 와 Link 를 해서 사용하고 있어서 WPF 에서 확인해보면 또 수정된 부분이 잘 반영되어 있따..
우짜지....
.....
...
.
트레이 아이콘에 asp.net development server 아이콘이 실행중이고 그래서 소스 변경하고 디버깅을 하면 알아서 잘 실행되던게
자꾸 포트 바인딩 에러가 난다...
처음엔 어라... 어디에서 저 포트를 쓰고있찌??? 라면서 삽질 좀 했다
구글링해도 마땅한 해결책을 찾지 못하고...
Visual Studio 에서 이거저것 확인하던 중에 해당 Web Project 의 속성에 보니
한글판 기준으로 [개발서버] 라는 카테고리에 [디버깅 시 항상 시작] 이라는 속성이 있다... True 로 되어있다...
어라.. 걍 트레이에 항상 떠 있었는데... 매번 새로 실행을 시키나?... 해서 False 로 바꾸고 해보니 포트 바인딩 에러가 나지 않는다.
머 전문적으로 어떻게 설명을 해야할지는 모르겠지만 직감적으로 포트 바잉딩 에러 자체가 기존에 Listening 하고 있는 포트를
또 바인딩할려고 해서 나는 에러니깐(다행히 소켓에 대한 개념은 약간 있었나 보다....)...
해결 된 거 맞지? 확실히 이 문제인지는 모르겠으나... 지금은 정상적으로 브레이크 포인트도 다 먹고 잘~~ 된다
ㅎ~
======= 추가 설명 =======
[디버깅 시 항상 시작] 의 값에 따른 Process Explorer 로 확인한 스크린 샷
다음 스샷에서 보는 것 처럼 Visual Studio 하위로 WebDev.WebServer40 프로세스가 True 일때는 2 개가.. False 일때는 정상적으로 1 개만 실행이 된다
결국 WebDev.WebServer40 프로세스가 중복 실행 되면서 동일한 포트에 바인딩할려다가 발생한 에러인듯 하다...
[디버깅 시 항상 시작 = True]
[디버깅 시 항상 시작 = False]
'IT > Dot Net' 카테고리의 다른 글
| 윈도우 폼 개발후 배포시 사이즈가 이상하다...? (0) | 2012/05/18 |
|---|---|
| asp.net development server port issue (0) | 2012/02/08 |
| [펌]Visual Studio 2010 OutOfMemoryException (0) | 2012/01/12 |
| 유용한 Extension Method 하나 (0) | 2011/05/03 |
| C# 으로 안드로이드 또는 아이폰 어플 개발 (0) | 2011/04/06 |
| [FarPoint Spread]데이터와 헤더라벨을 고려한 컬럼너비 자동조정 구현 (0) | 2010/11/12 |
글
[펌]Visual Studio 2010 OutOfMemoryException
얼마전에 찾은 거지만.. 혹시나 잊어버릴까.. 코멘트...
개발환경 구성을 테스트하는 중이라 이런 저런 상용 컴퍼넌트가 많이 깔려있다...
그리고, 솔루션 자체도 WPF, Winform, Silverlight 가 공존하는 상태
날마다 그날 디자인 모드를 최초로 오픈하는 경우 툴박스 생성한다고 한참 기다리고...
한~참을 기다리다 잘 되면 다행... 심할때 걍 멍때리다 죽어버린다... 개발툴이 Exception 이 난다 제길~!@,,@
그래서 이런 저런 방법을 찾다가 현재 적용해서 큰(?) 무리 없이 잘 쓰고 있는 해결책이 있어서
메모용으로 남긴다.
구글링해서 얻은 한국 웹사이트는
http://cafe.naver.com/mssilverlight.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=11796&
원문 링크는...
http://stevenharman.net/blog/archive/2008/04/29/hacking-visual-studio-to-use-more-than-2gigabytes-of-memory.aspx
간단하게 요약하면 개발시 메모리를 3G 까지 Max 로 사용하게 변경하자... 라고...
링크에서 모두 설명이 되어있어 굳이 여기서 설명을 덛붙여봐야 좀 심한 펌질이 될것같고...
해결책은 링크에서 확인...
'IT > Dot Net' 카테고리의 다른 글
| 윈도우 폼 개발후 배포시 사이즈가 이상하다...? (0) | 2012/05/18 |
|---|---|
| asp.net development server port issue (0) | 2012/02/08 |
| [펌]Visual Studio 2010 OutOfMemoryException (0) | 2012/01/12 |
| 유용한 Extension Method 하나 (0) | 2011/05/03 |
| C# 으로 안드로이드 또는 아이폰 어플 개발 (0) | 2011/04/06 |
| [FarPoint Spread]데이터와 헤더라벨을 고려한 컬럼너비 자동조정 구현 (0) | 2010/11/12 |
글
유용한 Extension Method 하나
출처 : http://www.codeproject.com/KB/cs/Threadsafe_formupdating.aspx
public static class ExtensionMethod {
public static TResult SafeInvoke<T, TResult>(this T isi, Func<T, TResult> call) where T : ISynchronizeInvoke {
if(isi.InvokeRequired) {
IAsyncResult result = isi.BeginInvoke(call, new object[] { isi });
object endResult = isi.EndInvoke(result);
return (TResult)endResult;
} else
return call(isi);
}
public static void SafeInvoke<T>(this T isi, Action<T> call) where T : ISynchronizeInvoke {
if(isi.InvokeRequired)
isi.BeginInvoke(call, new object[] { isi });
else
call(isi);
}
}
'IT > Dot Net' 카테고리의 다른 글
| asp.net development server port issue (0) | 2012/02/08 |
|---|---|
| [펌]Visual Studio 2010 OutOfMemoryException (0) | 2012/01/12 |
| 유용한 Extension Method 하나 (0) | 2011/05/03 |
| C# 으로 안드로이드 또는 아이폰 어플 개발 (0) | 2011/04/06 |
| [FarPoint Spread]데이터와 헤더라벨을 고려한 컬럼너비 자동조정 구현 (0) | 2010/11/12 |
| [펌]Clickonce 인증서 만료시 해결책 - 기존 인증서 만료기간 수정 (0) | 2010/11/05 |
글
C# 으로 안드로이드 또는 아이폰 어플 개발
1. Andriod
http://monodroid.net/
Sample => https://github.com/mono/monodroid-samples
2. iPhone
http://monotouch.net/
Book => http://www.amazon.com/Professional-iPhone-Programming-MonoTouch-NET/dp/047063782X/
과연 퍼포먼스가 제대로 나올지.. 테스트 해봐야 겠군...
'IT > Dot Net' 카테고리의 다른 글
| [펌]Visual Studio 2010 OutOfMemoryException (0) | 2012/01/12 |
|---|---|
| 유용한 Extension Method 하나 (0) | 2011/05/03 |
| C# 으로 안드로이드 또는 아이폰 어플 개발 (0) | 2011/04/06 |
| [FarPoint Spread]데이터와 헤더라벨을 고려한 컬럼너비 자동조정 구현 (0) | 2010/11/12 |
| [펌]Clickonce 인증서 만료시 해결책 - 기존 인증서 만료기간 수정 (0) | 2010/11/05 |
| [이벤트] Windows 7 BIG3 개발 고수되기! (0) | 2010/09/17 |
글
[FarPoint Spread]데이터와 헤더라벨을 고려한 컬럼너비 자동조정 구현
public static void SetResizeColALL(SheetView fpSheet) {
SetResizeColALL(fpSheet, 10);
}
/// <summary>
/// 스프레드 컬럼별 너비를 자동조절(헤더 라벨 고려)
/// 2010-11-12 By KKOMZI : Multi Row Header 고려
/// </summary>
/// <param name="fpSheet"></param>
/// <param name="pExtWidth">추가로 확장시킬 너비</param>
public static void SetResizeColALL(SheetView fpSheet, int pExtWidth) {
int _headerRowCount = fpSheet.ColumnHeader.RowCount;
fpSheet.RowCount += _headerRowCount;
int _tmpIndex = 0;
for(int rowIdx = 0 ; rowIdx < _headerRowCount ; rowIdx++) {
_tmpIndex = fpSheet.RowCount - rowIdx - 1;
fpSheet.Rows[_tmpIndex].CellType = new GeneralCellType();
for(int colIdx = 0 ; colIdx < fpSheet.ColumnCount ; colIdx++) {
// fpSheet.SetValue(_tmpIndex, colIdx, fpSheet.Columns[colIdx].Label);
fpSheet.SetValue(_tmpIndex, colIdx, fpSheet.ColumnHeader.Cells.Get(rowIdx, colIdx).Value);
}
}
for(int k = 0 ; k < fpSheet.Columns.Count ; k++) {
fpSheet.Columns[k].Width = 0;
fpSheet.Columns[k].Width = Math.Max(fpSheet.ColumnHeader.Columns[k].GetPreferredWidth(), fpSheet.Columns[k].GetPreferredWidth()) + pExtWidth;
// fpSheet.Columns[k].ColWidth = fpSheet.GetPreferredColumnWidth(k, true, true, true);
}
fpSheet.RowCount -= _headerRowCount;
}
[/code]
'IT > Dot Net' 카테고리의 다른 글
| 유용한 Extension Method 하나 (0) | 2011/05/03 |
|---|---|
| C# 으로 안드로이드 또는 아이폰 어플 개발 (0) | 2011/04/06 |
| [FarPoint Spread]데이터와 헤더라벨을 고려한 컬럼너비 자동조정 구현 (0) | 2010/11/12 |
| [펌]Clickonce 인증서 만료시 해결책 - 기존 인증서 만료기간 수정 (0) | 2010/11/05 |
| [이벤트] Windows 7 BIG3 개발 고수되기! (0) | 2010/09/17 |
| FileTracker : error FTK1011 (2) | 2010/09/03 |
글
[펌]Clickonce 인증서 만료시 해결책 - 기존 인증서 만료기간 수정
| - renewcert 소스 참조 - renewcert 소스에 만료기간을 5년만 더 연장하게 되어있음 MakeNewCert 메서드의 certExpireDate.wYear += 5; 부분을 수정해서 사용하자 |
출처 : http://www.ensimple.net/enSimple/show.aspx?cnum=289&b_id=study_smart&page=1
툴(RenewCert) : http://www.may.be/renewcert/
부가정보 : SelfCert 툴도 있음
80% 부족한 ClickOnce 정보2 - ClickOnce Permission & Authenticode
80% 부족한 ClickOnce 정보이다. 즉 대부분의 내용은 언급되지 않는다. 단 창스가 궁금해 하는 내용만 담도록 한다.
MSDN에서 읽은 내용을 토대로, 그 중에서 주관적인 기준을 가지고 선별하여 옮겨 놓았음을 밝힌다.
MSDN : http://msdn2.microsoft.com/en-us/library/ms172240(VS.80).aspx
[2008-02-04 추가]
이미 만료된 인증서로 ClickOnce 업데이트를 게시하는 것은 문제가 있음. 새로운 인증서를 가지고 다시 업데이트를 작성하게 되면
"The deployment identity does not match the subscription. " 에러 발생함.
따라서 동일한 인증서를 가지고 만료기간만 증가시켜주어야 함. 아래에 솔루션이 존재함.
http://www.may.be/renewcert/
ClickOnce의 기본적인 사용권한은 첫 버전의(original version)의 어플리케이션이 배포되어진 위치를 기준으로 하고 있다.; 업데이트는 이 사용권한을 상속받게 된다.
ClickOnce 사용자가 설치 시 권한 경고 팝업을 보지 않도록 하려면, 시스템 관리자는 ClickOnce 배포 정책을 통해 특정 어플리케이션 게시자을 신뢰된 제공자 목록에 등록하게 하여(클라이언트 머신 상에서) 이를 방지할 수 있다.
어플리케이션의 사용권한은 어플리케이션 manifest의 <trustInfo> 요소에 의해 결정된다. Visual Studio는 프로젝트의 보안 속성 페이지를 통해 이 정보를 자동으로 생성해 준다.
AuthentiCode는 어플리케이션의 게시자(제공자)의 신원을 검증하기 위해 디지털 인증서를 통해 어플리케이션 코드를 서명하는 산업 표준의 암호화 방식을 사용하는 마이크로소프트의 기술이다.
코드 사이닝을 위한 인증서는 아래의 세가지 방법 중 하나를 통해 얻을 수 있다.
□ 인증서 벤더를 통해 구매
□ 디지털 인증서 발행을 책임 전담하는 조직의 기관을 통해 수령.
□ MakeCert.exe를 통해 자신만의 인증서를 생성, 이 툴은 .NET Framework SDK에 포함됨.
MakeCert를 통해 생성된 인증서는 일반적으로 "self-cert" 또는 "test cert", 즉 테스트 인증서라고 불린다. 이러한 종류의 인증서는 .NET Framework 상의 .snk 파일과 매우 유사한 방식으로 작동한다. : 이는 독립적으로 public/private 암호화 키 쌍을 포함하고, 제공자에 대한 어떠한 검증 데이터도 포함하지 않는다.
우리는 인트라넷과 같은 높은 신뢰를 가진 환경에서 테스트 인증서를 사용할 수 있다.; 하지만, 이러한 어플리케이션이 클라이언트 컴퓨터 상에서 구동될 때, ClickOnce는 "Unknown Pulisher"로 부터 제공된 어플리케이션 임을 표시하게 된다. 기본적으로 테스트 인증서로 서명되고 인터넷을 통해 배포된 ClickOnce 어플리케이션은 신로된 어플리케이션 배포(Trusted Application Deployment)을 이용할 수 없다.
대조적으로, 인증서 벤더 또는 기업 내 특정 부서- CA 를 통해 인증서를 발급받았다면, 그 인증서는 사용자에 보다 강력한 보안을 제공한다. 이는 제공자를 식별할 뿐 아니라 인증서를 서명한 CA의 신원을 확인하는 검증단계를 거치게 된다.
만일 CA가 루트 CA가 아니라면, AuthentiCode 는 Root CA까지 인증서를 발급한 CA를 검증하기 위해 확인하는 절차를 거치게 된다.
보다 강력한 보안을 위해 가능하다면, CA로 부터 발급된 인증서를 사용하도록 한다.
■ 테스트 인증서와 그 만료기간
인증서가 유효한(만료되지 않은 시점에) 배포(manifest)가 한 번 서명되었다면, 인증서가 이후에 만료되더라도 ClickOnce를 통한 어플리케이션 설치와 실행은 정상적으로 이루어진다.
(self-cert/test-cert 를 사용해 배포를 서명했더라도, 이후 설치와 실행은 해당 인증서 만료기간에 상관없이 유효함.)
■ 인증서 저장
인증서는 파일 시스템 내에 .pfx 파일로 저장할 수 있다. 또는 키 컨테이너 내에 저장할 수 도 있다. 도메인 상의 사용자는 여러 개의 키 컨테이너를 가진다. 기본적으로 MakeCert.exe 는 우리가 따로 pfx로 저장하도록 명시하지 않는 이상, 인증서를 개인적인(personal) 키 컨테이너에 저장할 것이다.
.NET Framework SDK 에 포함된 Mage.exe와 MageUI.exe는 ClickOnce 배포를 생성하기 위한 툴이며 파일(pfx) 또는 키 컨테이너에 저장된 인증서를 사용할 수 있게 지원한다.
신뢰된 어플리케이션 배포를 할 때, 조직은 Authenticode 인증서에 명시된 제공자가 클라이언트 컴퓨터의 신뢰된 제공자 목록으로 등록되도록 구성할 수 있다.
이후부터 해당 신뢰된 제공자에 의해 사인된 모든 ClickOnce 어플리케이션은 클라이언트 컴퓨터 상에서 높은 레벨의 신뢰를 부여받게 된다.
■ 권한 상승(Permission Elevation)
신뢰된 어플리케이션 배포는 사용자 컴퓨터에 대한 한번의 구성을 요구한다. AD에 의해 관리되는 데스크탑 환경인 경우, 이 구성은 Global Policy(그룹정책)을 이용해 수행될 수 있다. 만일 그렇지 않은 환경이라면, 권한 상승(permission elevation)을 대신 사용해야 한다.
만일 현재의 제공자가 신뢰된 제공자로 등록되지 않은 경우(클라이언트 머신 상에서), Trust Manager(보안을 관리하는 하나의 시스템)는 구동할 어플리케이션에게 상승된 권한을 허락할 것인지를 사용자에게 물어보는 권한 상승(Permission Elevation) 과정을 거치게 된다.
만일 권한 상승이관리자에 의해 비활성화 되면, 어플리케이션은 구동할 권한을 얻을 수 없다. 그래서 어플리케이션은 그저 작동하지 않을 것이며, 이 사실에 대한 어떠한 통지(notification)나 알림도 사용자에게 전달(표시)되지 않을 것이다.
권한 상승 과정을 수용할 수 없는 환경이라면, 아래의 명령을 클라이언트 상에서 먼저 수행케 하도록 하는 것을 검토할 수 도 있다.
작업 셋업 프로그램을 만들어서 웹으로 배포하든지, SMS(System Management Service)와 같은 인프라가 존재한다면, 자동 배포할 수도 있을 것이다.
아래는 클라이언트 컴퓨터 상에서 신뢰된 (인증서) 제공자(Truest Publisher)로 good.cer라는 파일에 명시된 제공자를 등록시키는 명령이다.
Good.cer는 makecert를 통해 생성할 수 있으며, 배포하고자 하는 어플리케이션의 인증서 제공자 정보가 포함되면 될 것이다.
certmgr.exe -add good.cer -c -s -r localMachine Root
ertmgr.exe -add good.cer -c -s -r localMachine TrustedPublisher
'IT > Dot Net' 카테고리의 다른 글
| C# 으로 안드로이드 또는 아이폰 어플 개발 (0) | 2011/04/06 |
|---|---|
| [FarPoint Spread]데이터와 헤더라벨을 고려한 컬럼너비 자동조정 구현 (0) | 2010/11/12 |
| [펌]Clickonce 인증서 만료시 해결책 - 기존 인증서 만료기간 수정 (0) | 2010/11/05 |
| [이벤트] Windows 7 BIG3 개발 고수되기! (0) | 2010/09/17 |
| FileTracker : error FTK1011 (2) | 2010/09/03 |
| CopySourceAsHtml 에러 수정 (0) | 2010/08/27 |
글
[이벤트] Windows 7 BIG3 개발 고수되기!
MS 에서 이벤트 메일 받고... 100% 당첨에 유용한 정보까지.. 흠흠!!
또 다른 꺼~리가 생겼당...
링크 : http://msdn.microsoft.com/ko-kr/ff955783.aspx
'IT > Dot Net' 카테고리의 다른 글
| [FarPoint Spread]데이터와 헤더라벨을 고려한 컬럼너비 자동조정 구현 (0) | 2010/11/12 |
|---|---|
| [펌]Clickonce 인증서 만료시 해결책 - 기존 인증서 만료기간 수정 (0) | 2010/11/05 |
| [이벤트] Windows 7 BIG3 개발 고수되기! (0) | 2010/09/17 |
| FileTracker : error FTK1011 (2) | 2010/09/03 |
| CopySourceAsHtml 에러 수정 (0) | 2010/08/27 |
| 멀티캐스트 대리자 샘플 (0) | 2010/08/26 |
글
FileTracker : error FTK1011
VS 2010 코드 테스트중
갑자기 FileTracker : error FTK1011 에러가 뜬다
구글링 해보니.. 의외로 쉬운 해결책이 있따
1. 소스코드 경로에서 한글이 있는 경우 가끔 에러가 발생하니깐 영문으로 바꿔주라.
2. 프로젝트 파일(.csproj) 에 속성 추가
<PropertyGroup>
<TrackFileAccess>false</TrackFileAccess>
</PropertyGroup>
이걸로 해결은 되나.. 근본적인 원인은???
http://msdn.microsoft.com/ko-kr/library/microsoft.build.utilities.filetracker.aspx 과 관계있나??
아무도, 근본적인 원인에 대한 설명은 하지 않는군.. 걍.. 버그 인건가?
보니깐 VS 2010 Beta 때부터 나온 현상인데 아직도 그대로 인가보네
참고로 현재개발 환경은 Visual Studio 2010 Ultimate Trial 한글판
왜... 왜.. 한글폴더명은 문제가 많은겨... ㅉㅉㅉ
이것때매 쓸데없은 삽질만 했네.. 에효...
'IT > Dot Net' 카테고리의 다른 글
| [펌]Clickonce 인증서 만료시 해결책 - 기존 인증서 만료기간 수정 (0) | 2010/11/05 |
|---|---|
| [이벤트] Windows 7 BIG3 개발 고수되기! (0) | 2010/09/17 |
| FileTracker : error FTK1011 (2) | 2010/09/03 |
| CopySourceAsHtml 에러 수정 (0) | 2010/08/27 |
| 멀티캐스트 대리자 샘플 (0) | 2010/08/26 |
| 중국어 간자체 변환 (0) | 2010/08/20 |
설정
트랙백
댓글
글
CopySourceAsHtml 에러 수정
멀티캐스트 대리자 샘플 포스팅을 하던중...
소스코드를 블로그나 기타 웹에 올릴때 HTML 로 변환하는 툴이나 Addin 을 찾던 중
발견한 것중에 하나가 CopySourceAsHtml(http://copysourceashtml.codeplex.com/) 이다.
단독 프로그램으로 된 것도 있었던 것 같은데.. 아무튼 오픈소스에 C# 으로 만들어 졌길래...
다운로드 링크에 가서 바로 설치를 해보았으나... 에러가 쩝 ㅡㅡ;;
그래서, 소스(Chagne Set 63489)를 받아서 돌려보니(Addin 은 정말이지 디버깅하기 너무 귀찮타 ㅡㅡ;;)
Visual Studio 2005, 2008 공통으로 영문버전 기준으로 만들어져 있었다.
그래서 한글판에 쓸 수 있도록 조금 수정을 했다...
그리고, 무사히 소스를 이쁘게 올릴 수 있었다는...
느낀건.. 어떤 프로그램이나 툴을 찾을 때 오픈소스인 경우는 함 까보자..
나름 공부가 된다... 크크크...
( 아.. 오늘 날짜(2010/08/27) 기준 다운로드 링크에서 받으면
VS 2005 는 => 2.0 버전, VS 2008 은 => 3.0 버전을 설치하라고 되어있다.
영문판만 된다.. )
'IT > Dot Net' 카테고리의 다른 글
| [이벤트] Windows 7 BIG3 개발 고수되기! (0) | 2010/09/17 |
|---|---|
| FileTracker : error FTK1011 (2) | 2010/09/03 |
| CopySourceAsHtml 에러 수정 (0) | 2010/08/27 |
| 멀티캐스트 대리자 샘플 (0) | 2010/08/26 |
| 중국어 간자체 변환 (0) | 2010/08/20 |
| [펌]About Box 에 관한 좋은 소스 (0) | 2010/02/18 |
