퇴근5분전

this.textBox2.Text = FormsAuthentication.HashPasswordForStoringInConfigFile( this.textBox1.Text, "sha1");
this.textBox3.Text =  FormsAuthentication.HashPasswordForStoringInConfigFile(this.textBox1.Text,"md5"); 
암호화 하는 메서드임

db상에서 패스워드를 쉽게 확인 불가능하게 해야 할때 사용( 주로 요새 쓰는듯 )

바뀐 데이타로 pws를 비교하면 됨.
ex)
// 1111  을 암호화 한 문자열임.
if( "011C945F30CE2CBAFC452F39840F025693339C42" == FormsAuthentication.HashPasswordForStoringInConfigFile( this.textBox4.Text, "sha1") )
{
 MessageBox.Show("빙고");
}
else
{
 MessageBox.Show("땡!");
}



두가지 암호화 타입이 있음 sha1, md5

둘중 하나로 쓰면 됨.

복호 안됨 ( 사실 해본적도 없음 ).

'# 2) .Net ( Vs 2005 ) > 기타' 카테고리의 다른 글

Xml 직렬화...  (0) 2009.05.08
정규식] 똑같은 글자가 몇개?  (2) 2009.05.08
인터페이스와델리게이트조합1  (2) 2009.05.08
DB로컬 연결시 문구  (0) 2009.05.02
큐브~  (0) 2009.05.02

사용자 삽입 이미지
인터페이스란?
 다양한 객체간에 공통으로 사용할 메세지을 정의하고, 그 구현을 상속받은 객체에 역할을 미루며
이 메세지는 각각의 객체에 접근시 해당 인터페이스를 이용하게 되면, 객체타입에 관계없이 인터페이스를 이용해 메세지호출이 가능해짐.

델리게이트란?
  대리자 또는 위임자로써 메세지 처리를 다른 대상으로 미뤄주면서 처리할 데이타를 전달 할 수
있는 녀석임.

 위 둘을 조합하여 할수 있는 일이 있다. 위 그림처럼 메인 폼에서 유저컨트롤들이 이용될시

유저컨트롤에 특정 메세지호출과 함께 이뤄지는 처리를 유저컨트롤에서와 메인폼에서
서로 나눠서 처리할수가 있게 됨.

 이게 어떤 일을 할수 있는가?

유저컨트롤이 가지게 되는 데이타들을 폼상에서 데이타를 처리하고자 할경우

이때 유저컨트롤이 다수가 되고 호출 메세지 공통으로 존재하고
이에 대한 데이타처리를 메인폼에서 통일하고자 할 경우
위와 같은 구조로 처리하게 되면 데이타를 처리를 한곳으로 모아줄수 있으며

나중에 유지보수를 한다고 할 경우
인터페이스와 델리게이트를 안다고 할 때, 좀더 손댈곳이 적어짐을 알수 있음.

간다한 예제를 만듬 :


ps : 이 예제는 훈스닷넷 회원분이 질문하던 내용에 대한 해결 방법으로 그 아이디어에 대한
예제를 만들어서 보내드림.




'# 2) .Net ( Vs 2005 ) > 기타' 카테고리의 다른 글

정규식] 똑같은 글자가 몇개?  (2) 2009.05.08
PWD 암호화 객체.  (0) 2009.05.08
DB로컬 연결시 문구  (0) 2009.05.02
큐브~  (0) 2009.05.02
XML 컨트롤...  (0) 2009.05.02

로컬로 Window모드로 데이타베이스에 접근하고자 할때!

Integrated Security=SSPI;Persist Security Info=False;Initial Catalog={데이타베이스명};Data Source=localhost


'# 2) .Net ( Vs 2005 ) > 기타' 카테고리의 다른 글

PWD 암호화 객체.  (0) 2009.05.08
인터페이스와델리게이트조합1  (2) 2009.05.08
큐브~  (0) 2009.05.02
XML 컨트롤...  (0) 2009.05.02
DB Connection Factory  (0) 2009.05.01



전에 큐브를 구현해보려고 한적이 있었음.
한 면을 두고 그 면에 회전방향을 지정해서 돌리는 로직을 만들었었는데
간단히 올려봄. 

아래 소스는 동일하게 동작한다.
과연 무엇을 쓸것인가?
하나는 그나마 보기에 좋고 소스가 조금더 길다( 쬐끔 )
하나는 보기어렵고 소스가 짧다.

        void RotationFor(bool CW)
        {
            string[] buffer = new string[3];

            buffer[CW ? 2 : 0]  = CubeBuffer[CW ? 11 : 0 ];
            buffer[1]           = CubeBuffer[CW ? 10 : 1 ];
            buffer[CW ? 0 : 2]  = CubeBuffer[CW ?  9 : 2 ];

            for (int loop = 0; loop < 3; loop++)
            {
                CubeBuffer[(CW ? 11 - (loop * 3)-0 : (loop * 3) + 0 ) ] = CubeBuffer[(CW ?11 - (loop * 3) - 3 : (loop * 3) + 3  )];
                CubeBuffer[(CW ? 11 - (loop * 3)-1 : (loop * 3) + 1 ) ] = CubeBuffer[(CW ?11 - (loop * 3) - 4 : (loop * 3) + 4  )];
                CubeBuffer[(CW ? 11 - (loop * 3)-2 : (loop * 3) + 2 ) ] = CubeBuffer[(CW ?11 - (loop * 3) - 5 : (loop * 3) + 5  )];               
            }

            CubeBuffer[CW ? 2 :  9] = buffer[CW ? 2 : 0] ;
            CubeBuffer[CW ? 1 : 10] = buffer[1];
            CubeBuffer[CW ? 0 : 11] = buffer[CW ? 0 : 2] ;
        }

        void Rotation(bool CW)
        {
            string[] buffer = new string[3];
            if (!CW)
            {
                buffer[ 0] = CubeBuffer[ 0];
                buffer[ 1] = CubeBuffer[ 1];
                buffer[ 2] = CubeBuffer[ 2];

                CubeBuffer[ 0] = CubeBuffer[ 3];
                CubeBuffer[ 1] = CubeBuffer[ 4];
                CubeBuffer[ 2] = CubeBuffer[ 5];

                CubeBuffer[ 3] = CubeBuffer[ 6];
                CubeBuffer[ 4] = CubeBuffer[ 7];
                CubeBuffer[ 5] = CubeBuffer[ 8];

                CubeBuffer[ 6] = CubeBuffer[ 9];
                CubeBuffer[ 7] = CubeBuffer[10];
                CubeBuffer[ 8] = CubeBuffer[11];

                CubeBuffer[ 9] = buffer[ 0];
                CubeBuffer[10] = buffer[ 1];
                CubeBuffer[11] = buffer[ 2];
            }
            else
            {
                buffer[ 2] = CubeBuffer[11];
                buffer[ 1] = CubeBuffer[10];
                buffer[ 0] = CubeBuffer[ 9];
               
                CubeBuffer[11] = CubeBuffer[ 8];
                CubeBuffer[10] = CubeBuffer[ 7];
                CubeBuffer[ 9] = CubeBuffer[ 6];
               
                CubeBuffer[ 8] = CubeBuffer[ 5];
                CubeBuffer[ 7] = CubeBuffer[ 4];
                CubeBuffer[ 6] = CubeBuffer[ 3];
               
                CubeBuffer[ 5] = CubeBuffer[ 2];
                CubeBuffer[ 4] = CubeBuffer[ 1];
                CubeBuffer[ 3] = CubeBuffer[ 0];

                CubeBuffer[2] = buffer[ 2];           
                CubeBuffer[1] = buffer[ 1];             
                CubeBuffer[0] = buffer[ 0];
               
               
            }

        }



'# 2) .Net ( Vs 2005 ) > 기타' 카테고리의 다른 글

PWD 암호화 객체.  (0) 2009.05.08
인터페이스와델리게이트조합1  (2) 2009.05.08
DB로컬 연결시 문구  (0) 2009.05.02
XML 컨트롤...  (0) 2009.05.02
DB Connection Factory  (0) 2009.05.01

Xml을 조작하기엔     XmlDocument 로 가지고 놀기 편하였다.


XmlDocument xDoc = new XmlDocument();
xDoc.Load : 읽어오기
xDoc.Save : 저장하기
XmlNodeList  xList  = xDoc.GetElementsByTagName("태그명");
xDoc["태그명"]


< XmlElement1   XmlAttribute1  XmlAttribute2 ... >
< XmlElement2   XmlAttribute1  XmlAttribute2 ... />
< XmlElement3   XmlAttribute1  XmlAttribute2 XmlAttribute3 ... />
</XmlElement1>

간단하게 위처럼 XmlElement로 접근이 쉽다.

간단한 설정 데이타나, 메세지 전달이 필요할때 변환이 쉽더라.


'# 2) .Net ( Vs 2005 ) > 기타' 카테고리의 다른 글

PWD 암호화 객체.  (0) 2009.05.08
인터페이스와델리게이트조합1  (2) 2009.05.08
DB로컬 연결시 문구  (0) 2009.05.02
큐브~  (0) 2009.05.02
DB Connection Factory  (0) 2009.05.01


DB연결객체과 Excel Access 연결객체를 만들어주는 놈을 만들었다. 

    /// <summary>
    /// 연결 문자열 팩토리.
    /// </summary>
    public static class OleDbConnetionFactory
    {

        /*
            Provider (OLE DB only) 
            Access : Microsoft.JET.OLEDB.4.0 
            Oracle - MSDAORA 
            MS SQL - SQLOLEDB 
            Data Source(server) :  데이터베이스 위치 (Domain or IPAddress) 
            Initial Catalog (database): 데이터 베이스 이름 
            User ID/Password : 인증 정보  
         */
        /// <summary>
        /// MS-SQL 데이타 베이스 연결 문자열.
        /// </summary>
        /// <returns> 연결 문자열 </returns>
        public static string MSSQLConnectionString()
        {
            Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            AppSettingsSection appSetting = (AppSettingsSection)config.GetSection("AppSettings");

            OleDbConnectionStringBuilder oleCon = new OleDbConnectionStringBuilder();
            oleCon.Add("Provider", "SQLOLEDB");
            oleCon.Add("Data Source", string.Format("{0}", "서버명"));
            oleCon.Add("UID", "아이디");
            oleCon.Add("PWD", "패스워드");
            oleCon.Add("Database", "DB명");
            return oleCon.ConnectionString;
        }


        /// <summary>
        /// 엑셀-> 읽기, 쓰기관련 플래그 셋팅
        /// </summary>
        public enum Excel_Imex
        {
            /// <summary>
            /// 읽기 적용
            /// </summary>
            Read = 1,
            /// <summary>
            /// 쓰기 적용.
            /// </summary>
            Write = 0
        }
        /// <summary>
        /// 엑세스(Excel) 데이타 베이스 연결 문자열
        /// </summary>
        /// <param name="ExcelFilePath"></param>
        /// <param name="imex"></param>
        /// <returns> 연결 문자열 </returns>
        public static string ExcelConnectionString(string ExcelFilePath, Excel_Imex imex)
        {
            OleDbConnectionStringBuilder oleCon = new OleDbConnectionStringBuilder();
            oleCon.Add("Provider", "Microsoft.Jet.OLEDB.4.0");
            oleCon.Add("Data Source", string.Format("{0}", ExcelFilePath));
            oleCon.Add("Extended Properties", string.Format("Excel 8.0;imex={0};HDR=Yes", (int)imex));
            return oleCon.ConnectionString;
        }
    }

'# 2) .Net ( Vs 2005 ) > 기타' 카테고리의 다른 글

PWD 암호화 객체.  (0) 2009.05.08
인터페이스와델리게이트조합1  (2) 2009.05.08
DB로컬 연결시 문구  (0) 2009.05.02
큐브~  (0) 2009.05.02
XML 컨트롤...  (0) 2009.05.02