728x90
300x250

[ASP.NET] OLE DB Provider for SQL Server

 

ADO로의 처리를 위한 SQL Server의 접속선언자에 관한 요약입니다.

 

1. 표준 선언(Standard Security)

strConnect = _T("Provider=sqloledb;Data Source=MyServerName;"
        "Initial Catalog=MyDatabaseName;"
        "User Id=MyUsername;Password=MyPassword;");

 

2. 신뢰성 연결(Windows NT 통합 인증)

strConnect = _T("Provider=sqloledb;Data Source=MyServerName;"
        "Initial Catalog=MyDatabaseName;"
        "Integrated Security=SSPI;");

 

3. 이름 인스턴스의 형태(SQL Server 2000부터 지원하는 방법)

Data Source=ServerName\Instance Name

strConnect = _T("Provider=sqloledb;Data source=MyServerName\MyInstanceName;"
 "Initial Catalog=MyDatabaseName;User ID=MyUsername;Password=MyPassword;");

 

4. (Local)로의 선언

   (자기 자신(로컬 서버)을 대상으로 하는 선언)

strConnect = _T("Provider=sqloledb;Data Source=(local);"
        "Initial Catalog=myDatabaseName;"
        "User ID=myUsername;Password=myPassword;");

 

5. 원격 접속 방법

strConnect = _T("Provider=sqloledb;Network Library=DBMSSOCN;"
        "Data Source=130.120.110.001,1433;"
        "Initial Catalog=MyDatabaseName;User ID=MyUsername;"
        "Password=MyPassword;");

 

외부포트로의 선언 형태 : "Data Source=127.0.0.1,1433;"

기본포트의 경우(포트 형태 생략가능) : "Data Source=127.0.0.1;"

 


참고자료

1. http://www.codeproject.com/Articles/2304/ADO-Connection-Strings

 

반응형
728x90
300x250

[C#.NET] AES를 통한 파일 암호화 구현 예제

 

AES를 통한 파일을 암호화하는 방법에 관해 논해보겠습니다.

C#을 통해 파일을 암호화하는 방법입니다.

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security.Cryptography;

using System.Security; 

using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        // Rfc2898DeriveBytes constants:
        public readonly byte[] salt = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

      // Must be at least eight bytes.  MAKE THIS SALTIER!
      public const int iterations = 1042; // Recommendation is >= 1000.


        public static void Main(string[] args)
        {

 

        }

 

복호화(Encrypt)

 

public static void EncryptFile(string inputFile, string outputFile)
{

     try
     {
         string password = @"myKey123"; // Your Key Here
         UnicodeEncoding UE = new UnicodeEncoding();
         byte[] key = UE.GetBytes(password);

         string cryptFile = outputFile;
         FileStream fsCrypt = new FileStream(cryptFile, FileMode.Create);

         RijndaelManaged RMCrypto = new RijndaelManaged();

         CryptoStream cs = new CryptoStream(fsCrypt,
         RMCrypto.CreateEncryptor(key, key),
         CryptoStreamMode.Write);

         FileStream fsIn = new FileStream(inputFile, FileMode.Open);

         int data;
         while ((data = fsIn.ReadByte()) != -1)
              cs.WriteByte((byte)data);


              fsIn.Close();
              cs.Close();
              fsCrypt.Close();
        }
     catch
     {

     }
}

 

부호화(Decrypt)

 

/// Decrypts a file using Rijndael algorithm.
///</summary>
///<param name="inputFile"></param>
///<param name="outputFile"></param>
public static void DecryptFile(string inputFile, string outputFile)
{

    {
        string password = @"myKey123"; // Your Key Here

        UnicodeEncoding UE = new UnicodeEncoding();
        byte[] key = UE.GetBytes(password);

        FileStream fsCrypt = new FileStream(inputFile, FileMode.Open);

        RijndaelManaged RMCrypto = new RijndaelManaged();

        CryptoStream cs = new CryptoStream(fsCrypt,
        RMCrypto.CreateDecryptor(key, key),
        CryptoStreamMode.Read);

        FileStream fsOut = new FileStream(outputFile, FileMode.Create);

    

        int data;
        while ((data = cs.ReadByte()) != -1)
             fsOut.WriteByte((byte)data);

             fsOut.Close();
             cs.Close();
             fsCrypt.Close();

        }
}

반응형
728x90
300x250

[ASP.NET] 서버가 읽을 수 있는 형태로 Server.UrlPath.Encode()

 

한글이 깨지거나 하는 일부의 문제는 서버가 읽을 수 있는 형태로 변환되지 않은 문자를 처리할 때, 발생합니다.

 

이 글에서는 문자에 관한 형태는 자세히 소개하지 않습니다.


기초적으로 EUC-KR이라는 것을 소개하자면, 한글을 처리하기 위한 인코딩 규격입니다.

 

UTF-8가 탄생한 내력을 간단히 논하자면, 인코딩을 얼마나 빠르게 처리할 것인가를 놓고 이야기를 할 수 있습니다.
통신에서 문자를 어떤 규칙을 가지고 처리해야 안정 있게 처리할 것인지에 관한 이야기라고도 볼 수 있겠습니다.

 

우리의 문자는 컴퓨터가 해석하기엔 논리의 정보들의 뭉치일 겁니다.

이러한 상황을 가정할 때, 한글 어가 깨지는 것은 당연히 발생할 수밖에 없습니다.

왜냐 간단합니다.

 

ASCII 코드는 표준 인코딩 방식의 하나로서 ASCII에서는 0~127로 구성된 자료에서 한글을 바로 표현하는 건 문자에 관한 변환 과정을 전혀 하지 않고 구현할 수 없습니다.

 

여러 이유가 많이 있겠지만, 핵심은 문자열을 컴퓨터가 이해할 수 있는 형태 그리고 출력할 수 있는 형태로 변환을 제대로 하지 못해서 발생하는 것이라고 정리할 수 있겠습니다.


 


1. 구현

 Server.UrlPath.Encode()

 

Server.UrlPath.Encode()를 이용하여 문자를 서버가 이해할 수 있는 변환(Encode / 복호화)을 할 수 있습니다.

반응형
728x90
300x250

[ASP.NET] Response.TransmitFile에 관한 소개

 

Microsoft 기술자료 812406 "RPB: Response WriteFile Cannot Download a Large file"에서 언급하였습니다.

-> http://support.microsoft.com/kb/812406


파일을 메모리에 버퍼링하지 않고 HTTP Request Output Stream에서 직접 처리하게 해줍니다. 이 기술은 .NET Framework 2.0부터 지원합니다.

-> http://msdn.microsoft.com/en-us/library/12s31dhy(v=vs.80).aspx

 

하드웨어의 부하를 최소화하여 다운로드를 할 수 있도록 해줍니다.

 


1. Response.TransmitFile로 파일 처리하기

 

Response.ContentType = "images/jpeg";

Response.AppendHeader("Content-Disposition", "Attachment;filename=파일명.jpg");

Response.TransmitFile(@"D:\Test\곰돌이.jpg");

 

http://localhost:11111/test.aspx를 실행한다고 가정하면,

 

다운로드 창이 뜰겁니다.

파일명.jpg를 다운로드할 것인지 물어볼 겁니다.

 

즉, 웹 페이지 상에서 사용자가 요청에 의한 처리를 서버 메모리가 아닌 사용자가 요청한 프로세스에서 처리할 수 있도록 하는 방법이라고 할 수 있습니다.

 

 


2. 참고자료(Reference)

 

1. http://blog.ntils.com/archive/200706, Accessed by 2013-12-09

 

반응형
728x90
300x250

[ASP.NET] Eval에 조건문 사용하기

 

데이터바인딩 Eval 함수에 조건문 사용하는 방법입니다.


이 글은 ASP.NET 4으로 작성하였습니다.


1. 구현

 

 IF(condition){

}ELSE{

}

 

 

이런 꼴로는 작성할 수 없습니다.

이유는 디자인 형태로 작성한 것에 대해서는 함수를 작성할 수 없기 때문입니다.

 

<%# Eval(데이터바인딩명)?참:거짓 %>

 

이와 같은 꼴로 조건문을 작성할 수 있습니다.

반응형
728x90
300x250

[jQuery] Treeview Library

 

 

jQuery로 만든 Treeview입니다. 품질이 매우 우수합니다.

외국에서 만들었는데 ASP.NET뿐만 아니라 다양한 PHP 등 다양한 웹 프로그래밍 언어에서 사용하기에는 안성맞춤인 거 같습니다.

이상입니다.

 

jquery.treeview.zip

 

제작자 홈페이지 : http://bassistance.de/jquery-plugins/jquery-plugin-treeview/

제작자 : Jörn Zaefferer

 

 

반응형
728x90
300x250

[jQuery] javascript 연계 - 체크박스 (전체선택/해제) 기능

 

이걸 왜 구현했느냐면, jQuery 상에서 다양한 방법을 찾아보았으나, Attr만 가지고 구현할 때의 100%의 동작이 아니고, 버그로 인해 일부 동작하지 않은 것을 확인하였습니다.

그래서 원시적인 방법이지만, Checkbox를 Cnt와 Last 값을 비교하여 Javascript의 원래 동작 기능을 연계하여 전체선택 / 해제 기능을 구현했습니다. 

<script>

 

function toggleChecked() {
            var i = 0;
            var Last = (($("table[id=test']").find("input[type=checkbox]").length) / 3);
            var cnt = 0;


            i = 1;
            while (i <= Last) {
                if (document.getElementById("chk_" + i).checked) {
                    cnt++;
                }
                i++;
            }


            if (cnt == Last) {
                i = 1;
                while (i <= Last) {
                   
                    document.getElementById("chk_" + i).checked = false;
                    i++;
                }
            } else {
                i = 1;
                while (i <= Last) {
                    document.getElementById("chk_" + i).checked = true;
                    i++;
                }
            }

 }

 

</script>

 

빨간 부분이 일부에서 3을 곱해버리는 현상이 생겨서 나눗셈으로 단순하게 처리했는데, 환경에 맞게 계산을 대입하면 될거라고 봅니다.

 

<table id="test"> 

     <tr>

          <td><input id="chk_1" type="checkbox">  <td>

      </tr>

     <tr>

          <td><input id="chk_2" type="checkbox">  <td>

      </tr>

     <tr>

          <td><input id="chk_3" type="checkbox">  <td>

      </tr>

</table>

 

 

반응형
728x90
300x250

[Javascript] 현재 페이지 Refresh 방법 - (3가지)

 

location.reload(true);

location.href = location.href;

history.go(0);

 

사용 방법은 웹 페이지 소스에서 사용하시면 되겠습니다.

 

<script>

 

 ~~~~

 

</script>

 

이상입니다.

반응형

+ Recent posts