C# 로 AES 알고리즘 함수 암.복호화 작성후
CLR 로 덮어 씌워 DB에서 실행.

데이터베이스 권한 수준 안전에서도 잘 돌아간다.

AES 알고리즘 부분은 구글에서 검색시 여러가지 방법으로 구현한 것들이 많고(ex: http://bullpeng.tistory.com/61)
.net framework 3.5 이상버전(VS2008이상)에서 System.Security.Cryptography 에 라이브러리가 잘 정의되어 있다.

CLR 사용해서 키를 정해두고 중요개인정보는 암호화해서 저장해두면 웹서버/디비서버 다 털지 않는한 DB만 가져가선 볼 수 없다.
by Tomoya 2011.12.08 17:00

Datetime에 Null이 제대로 안 들어가다보니 생각 난 꽁수..
그렇다고 매개변수 주고 SQL에 이름넣지 않아도 에러 나고..

날짜 부분 체크 여부에 따라 기존처럼
DAO.MSSQL_Excute_Query(DataControl.GetConnstr(), sql, names)로 처리하려하면
무려 16개의 케이스를 제작해서 작성해야 하지만..

bool[] pass 하나 더 만들어 처리부에 if(!pass[i]) sc.Parameters.AddWithValue(names[i], values[i]); 로 바꿔 버렸다..
16번 노가다 귀찮으니 별 꽁수를 다 부리는 듯..;

그냥 다음에는 DAO.MSSQL_Excute_Query(DataControl.GetConnstr(), sql, names, values);
names,values를 ArratList[]로 처리하고
아래와 같이 ((Bool값)?A:B) 같은 처리로 SQL문 처리한후 command변경후 일괄 한큐 정리 메소드도 만들어 둬야 겠다.

 object[] values = new object[15];
                values[0] = a;
                values[1] = b;
...
values[5] = null;
                if (DELIVERY_DATE_checkBox.Checked)
                {
                    values[5] = DELIVERY_DATE_dateTimePicker.Value;
                }
                values[6] = null;
                if (EXCUTE_DATE_checkBox.Checked)
                {
                    values[6] = EXCUTE_DATE_dateTimePicker.Value;
                }
                values[7] = null;
                if (TASK_START_DATE_checkBox.Checked)
                {
                    values[7] = TASK_START_DATE_dateTimePicker.Value;
                }
                values[8] = null;
                if (TASK_END_DATE_checkBox.Checked)
                {
                    values[8] = TASK_END_DATE_dateTimePicker.Value;
                }
...

string[] names = new string[]
                    {
                        "@A", "@B"...                    };

bool[] pass = new bool[15];
                for (int i = 0; i < 15; i++)
                {
                    if (i < 5)
                    {
                        pass[i] = false;
                    }
                    else if (i > 5)
                    {
                        pass[i] = false;
                    }
                    else
                    {
                        if (i == 5) pass[i] = !DELIVERY_DATE_checkBox.Checked;
                        else if (i == 6) pass[i] = !EXCUTE_DATE_checkBox.Checked;
                        else if (i == 7) pass[i] = !TASK_START_DATE_checkBox.Checked;
                        else if (i == 8) pass[i] = !TASK_END_DATE_checkBox.Checked;
                    }

                }

string sql = "...,"+
                   (DELIVERY_DATE_checkBox.Checked?"DELIVERY_DATE = @DELIVERY_DATE,":"")+
                   (EXCUTE_DATE_checkBox.Checked?"EXCUTE_DATE = @EXCUTE_DATE,":"") +
                   (TASK_START_DATE_checkBox.Checked?"TASK_START_DATE = @TASK_START_DATE,":"")+
                   (TASK_END_DATE_checkBox.Checked?"TASK_END_DATE = @TASK_END_DATE,":"")+
                   "...";

state = DAO.MSSQL_Excute_Query(DataControl.GetConnstr(), sql, names, values,pass);

'공부 > MS' 카테고리의 다른 글

현재 고민중인 페이징 쿼리(추가)  (0) 2011.06.08
프로세스 감시  (3) 2011.06.07
날이 갈수록 늘어나는 잔 머리..;  (0) 2010.03.03
C# 에서 파일을 리소스에 넣어 처리하기.  (0) 2010.02.08
최근 작성한 C#2.0 DAO  (0) 2009.07.20
PC 데이터 단위 변환  (2) 2009.07.18
by Tomoya 2010.03.03 10:53

가끔 아이콘들을 DLL에 집어 넣어 처리하길 요구 할 수가 있다.
EXE야 간단하게 컴파일시 프로젝트매니저에서 설정하면 그만이지만
DLL에 집어넣은걸 불러 오는 것은 몇 라인을 추가해서 불러 와야 한다.
아래 리소스파일은 기본 리소스파일을 작성할때 기준이다.
만일 그냥 프로젝트에서 리소스 파일을 추가한다면
<프로젝트명>.Properties.Resources 대신 <프로젝트명>.<리소스파일명>으로 작성해야 한다.

<이미지(PNG)파일을 BitmapImage로 처리>
ResourceManager rm = new ResourceManager("<프로젝트명>.Properties.Resources", System.Reflection.Assembly.GetExecutingAssembly());
            Bitmap bitmapimg = (Bitmap)rm.GetObject("이미지명");
//예를들어 Myimg.png를 읽어 리소스 매니저에서Myimg1이 되었다면 Myimg1을 적어야 한다.

            Image img = (Image)bitmapimg;
            MemoryStream ms = new MemoryStream();
            img.Save(ms, System.Drawing.Imaging.ImageFormat.Png);

BitmapImage largeImage = new BitmapImage();
            largeImage.BeginInit();
            largeImage.DecodePixelHeight = 32;//사이즈를 지정해 주고 싶다면 셋팅한다
            largeImage.DecodePixelWidth = 32;//사이즈를 지정해 주고 싶다면 셋팅한다
            largeImage.StreamSource = ms;//uriImage; //urisourse로 불어온다면 간단하지만 리소스를 불러 올때는
//위와같은 단계가 필요하다.
            largeImage.EndInit();

<아이콘(ICO) 파일 처리>
ResourceManager rm = new ResourceManager("ConvertWallType.Properties.Resources", System.Reflection.Assembly.GetExecutingAssembly());
                    Icon iconimg = (Icon)rm.GetObject("logo");
                    ui.Icon = iconimg;

'공부 > MS' 카테고리의 다른 글

프로세스 감시  (3) 2011.06.07
날이 갈수록 늘어나는 잔 머리..;  (0) 2010.03.03
C# 에서 파일을 리소스에 넣어 처리하기.  (0) 2010.02.08
최근 작성한 C#2.0 DAO  (0) 2009.07.20
PC 데이터 단위 변환  (2) 2009.07.18
C# 2.0 개선형 DB 데이터 받아오기  (0) 2009.04.13
by Tomoya 2010.02.08 13:36
| 1 |