안녕하세요, 김대우입니다. 지난 포스팅에 이어지는 Azure Mobile Service .NET 백엔드의 내용이에요.

클라우드 모바일 서비스 서버 로직을 .NET으로! - Microsoft Azure Mobile Service의 .NET backend (1)
클라우드 모바일 서비스 서버 로직을 .NET으로! - Visual Studio로 개발과 배포를 한방에! (2)

클라우드 모바일 서비스 서버 로직을 .NET으로!–한걸음 더, .NET으로 암호화 루틴 추가해 보기 (3)

 

이전 포스팅에서 말씀 드린대로, 이번에는 Visual Studio에서 Member 클래스를 추가해 나만의 API들을 만들고 이어서 암호화 코드를 간단히 넣어 보도록 할게요.

 


image_thumb.png






먼저, Dataobject에서 Entity를 추가하기 위해 클래스를 추가 합니다.

 

 

using Microsoft.WindowsAzure.Mobile.Service;

namespace azuremobile.DataObjects
{
    public class Member : EntityData
    {
        public string MemberID { get; set; }

        public string MemberName { get; set; }

        public string MemberPWD { get; set; }

    }
}

이어서, 클래스를 위처럼 생성하구요. Member라는 엔터티입니다. 저는 MemberPWD 에 대해서 암호화를 해 볼거에요.

 

image_thumb_1.png


Entity를 생성했으니 이제 컨트롤러를 추가해 볼게요.

 

image_thumb_2.png


이렇게 컨트롤러를 선택하고 스캐폴딩을 추가 합니다. 모바일 서비스 테이블 컨트롤러를 추가 했어요.

 

image_thumb_3.png


 

Member Controller가 자동으로 생성되고 필요한 API 처리 메서드가 생성됩니다.

목표는 최초 소개해 드린대로, Member의 정보를 암호화 해 보려는 거구요. 삽입(POST 메서도) 단계에서 암호화 해 보려고 합니다.

 

MemberController안에서 추가합니다.


using System;
using System.IO;
using System.Text;
using System.Security.Cryptography;

 

암호화 메서드를 하나 추가 – 검색해서 후닥닥 찾은 내용 - 하구요.

public static string Encrypt_QueryString(string str)
        {
            string EncrptKey = "techdaysdemo-code-key";
            byte[] byKey = { };
            byte[] IV = { 18, 52, 86, 120, 144, 171, 205, 239 };
            byKey = System.Text.Encoding.UTF8.GetBytes(EncrptKey.Substring(0, 8));
            DESCryptoServiceProvider des = new DESCryptoServiceProvider();
            byte[] inputByteArray = Encoding.UTF8.GetBytes(str);
            MemoryStream ms = new MemoryStream();
            CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write);
            cs.Write(inputByteArray, 0, inputByteArray.Length);
            cs.FlushFinalBlock();
            return Convert.ToBase64String(ms.ToArray());
        }

 

삽입될 때 암호화를 하려면 POST 메소드에서 추가 해야죠.

public async Task<IHttpActionResult> PostMember(Member item)
        {
            item.MemberPWD = Encrypt_QueryString(item.MemberPWD);
            Member current = await InsertAsync(item);           
            return CreatedAtRoute("Tables", new { id = current.Id }, current);
        }

PostMember 메소드에서 암호화 부분을 추가합니다. MemberPWD 값을 암호화 하는 코드를 추가했어요.

자 빌드하고 게시한 후, 다시 POST 작업을 해 보겠습니다.

 

 

image_thumb_5.png

Member에서 POST를 선택하구요.

 

image_thumb_6.png

샘플 값을 넣어 봅니다.

 




image_thumb_7.png


자~ 이렇게 암호화된 데이터가 잘 들어간 것을 확인 가능합니다. .NET 백엔드 쉽지요~

 

image_thumb_9.png

Azure의 클라우드  서비스로 다시 게시를 다시 해보면? 이렇게 미리보기 화면을 볼 수 있구요. 변경된 파일만 배포 합니다.

배포 후 실행하셔도 잘 되실거에요.

 

자 이렇게 간단히 Azure Mobile Service의 .NET 백엔드에 대해서 알아 봤습니다. 관련된 더 많은 내용은 아래의 링크를 참고 하시면 됩니다.

감사합니다.



클라우드 모바일 서비스 서버 로직을 .NET으로! - Microsoft Azure Mobile Service의 .NET backend (1)
클라우드 모바일 서비스 서버 로직을 .NET으로! - Visual Studio로 개발과 배포를 한방에! (2)

클라우드 모바일 서비스 서버 로직을 .NET으로!&ndash;한걸음 더, .NET으로 암호화 루틴 추가해 보기 (3)



[참고링크]

안드로이드 개발자를 위한 Windows Azure Mobile Service 소개 (1/6)

안드로이드 개발자를 위한 Windows Azure Mobile Service를 이용한 백엔드 데이터 처리 (2/6)

안드로이드 개발자를 위한 Windows Azure Mobile Service 서버 스크립트 (3/6)

안드로이드 개발자를 위한 Windows Azure Mobile Service를 이용한 페이징 처리 구현 (4/6)

안드로이드 개발자를 위한 Windows Azure Mobile Service로 구축하는 인증(Authentication) 서비스 - Microsoft id, Facebook id, Twitter id, Google id (5/6)

안드로이드 개발자를 위한 Windows Azure Mobile Service 푸쉬 알림(Push Notification) 서비스 구축 - WNS(WPNS), APNS, GCM (6/6)

 

Windows Azure Mobile Service 소개 (1/7)

Windows Azure Mobile Service를 이용한 백엔드 데이터 처리 (2/7)

Windows Azure Mobile Service 서버 스크립트 (3/7)

Windows Azure Mobile Service를 이용한 페이징 처리 구현 (4/7)

Windows Azure Mobile Service로 구축하는 인증(Authentication) 서비스 - Microsoft id, Facebook id, Twitter id, Google id (5/7)

Windows Azure Mobile Service 푸쉬 알림(Push Notification) 서비스 구축 - WNS(WPNS), APNS, GCM (6/7)

Windows Azure Mobile Service 의 서비스 확장(Scale)과 분석 및 모니터링 (7/7)

 

Windows Azure 90일 무료 평가판 - Windows Azure Mobile Service도 사용 가능

Windows Azure Mobile Service 공식사이트 - Android, iOS, Windows 8, Windows Phone 8

Windows Azure 공식 웹사이트

Windows Azure Mobile Service 튜토리얼 웹사이트

[동영상 강좌] (1) Windows Azure 개요
[동영상 강좌] (2) Windows Azure 웹 사이트
[동영상 강좌] (3) Azure에서 실행되는 ASP.NET 웹 사이트 만들기
[동영상 강좌] (4) Windows Azure 클라우드 서비스
[동영상 강좌] (5) Cloud Service 프로젝트 처음 만들어보기
[동영상 강좌] (6) 기존 ASP.NET 웹 사이트를 Windows Azure로 옮기기
[동영상 강좌] (7) Windows Azure 가상 컴퓨터
[동영상 강좌] (8) Windows 가상 컴퓨터 소개
[동영상 강좌] (9) SQL 데이터베이스 소개
[동영상 강좌] (10) SQL 데이터베이스 실습하기
[동영상 강좌] (11) Windows Azure 저장소
[동영상 강좌] (12) Windows Azure 저장소 실전 예제 살펴보기
[동영상 강좌] (13) Windows Azure 서비스 버스
[동영상 강좌] (14) 서비스버스 Queue와 Topic
[동영상 강좌] (15) 클레임 기반 인증 구현하기
[동영상 강좌] (16) 확장성 전역성 높은 가용성을 지닌 앱 만들기
[동영상 강좌] (17) 캐시 클러스터를 이용하여 신축성있는 클라우드 서비스 만들기
[동영상 강좌] (18) 트래픽 관리자를 이용한 24x365 글로벌 서비스 구축하기
[동영상 강좌] (19) WPNS와 Windows Azure로 알림 서비스 구현하기
[동영상 강좌] (20) Windows Azure 미디어 서비스 API 활용하기






profile

부족하지만, SQLER의 누군가와 함께한 나눔을 통해 제가 더 많이 즐거웠습니다.
SQLER와 함께 즐거워 할수록, 그 나눔을 통해 더 많은 기회와 가치를 발견하게 되었습니다.
나눔의 생각이 앞으로도 계속, SQLER를 움직일 것입니다.

코난, 김대우 / SQLER 운영자 / 골라먹는 SQLER RSS 정보 구독 / 실시간 SQLER 소식 uxkorea 트위터