.NET/ASP.NET

    [ASP.NET Core] ASP.NET Core Web API

    [ASP.NET Core] ASP.NET Core Web API

    이번 포스팅을 통해서는 ASP.NET Core Web API를 사용해 Web Service(HTTP 또는 REST services)를 구축하는 것에 관한 내용을 살펴보려고 합니다. 구축된 Web Service는 다른 website나 데스크탑 응용프로그램, 모바일 App을 포함하여 거의 대부분 유형의 HTTP client를 통해 사용될 수 있습니다. 1. ASP.NET Core Web API를 사용한 Web Service 구축하기 ● web service 본래 HTTP는 웹상에서 HTML과 함께 이미지나 기타 리소스를 사용자에게 응답할 수 있도록 설계되었지만 웹 서비스를 구축하는 하나의 좋은 대안이 되기도 합니다. Web Service의 주요 핵심이 되는 Representational State Trans..

    [ASP.NET Core] MVC패턴 웹프로젝트 만들기

    [ASP.NET Core] MVC패턴 웹프로젝트 만들기

    Microsoft ASP.NET Core MVC는 모델, 뷰, 컨트롤러로 전체 프로젝트를 구성하는 것이며 이와 함게 관련설정및 인증, 권한, 라우팅, 요청과 파이프라인응답등에 대해서 살펴보고자 합니다. 1. 개요 ASP.NET Core Razor Page는 간단한 웹프로젝트에는 훌륭한 선택이지만 다소 복잡한 프로젝트의 경우에는 복잡합의 체계적인 관리을 위해 구조적인 변화가 필요하고 여기서 Model-View-Controller(MVC) 디자인 패턴이 훌륭한 대안이 될 수 있습니다. ASP.NET Core MVC는 Razor Page와 비슷해 보이지만 아래 3가지 요소를 통해 기술적인 처리를 명확하게 분리할 수 있도록 합니다. Model : 프로젝트에서 데이터 엔티티나 뷰 모델을 나타내는 클래스의 모임입니..

    [ASP.NET Core] HttpContext.User

    Controller 라면 User 키워드를 통해서 현재 로그인한 사용자의 정보를 가져올 수 있습니다. 예를 들어 아이디를 검색하려면 다음과 같이 할 수 있습니다. string user = User?.Claims.Where(a => a.Type == ClaimTypes.NameIdentifier)?.FirstOrDefault()?.Value ?? string.Empty; Controller가 아닌 Controller에서 참조하는 외부클래스에서 User개체에 직접 접근해야 한다면 HttpContext를 통해야 합니다. 이를 위해 Program.cs에서 아래와 같이 AddHttpContextAccessor 서비스를 등록하고 builder.Services.AddHttpContextAccessor(); build..

    [ASP.NET Core] Razor Page로 웹프로젝트 만들기

    [ASP.NET Core] Razor Page로 웹프로젝트 만들기

    이번 포스팅에서는 ASP.NET Core의 Razor Page를 사용해 간단한 웹서비스를 구현해 보고자 합니다. 1. HTTP 클라이언트(User-Agent)가 서버와의 통신에서 HTTP를 사용한다는 것은 특정 주소에 대한 HTTP요청을 만들어 서버에 요청하게 되고 서버는 이 요청에 따라 해당 응답을 생성해 클라이언트로 반환하는 구조로 통신함을 의미합니다. 예를 들어 사용자가 웹 브라우저에서 http://cliel.com/ 주소를 입력하면 해당 요청을 서버에 전송하게 되고 서버는 해당 주소에 지정된 서버의 Resource를 반환함으로서 사용자의 웹브라우저에서 반환된 Resource를 표시하게 됩니다. 2. URL 우리가 인터넷 주소라고 칭하는 URL은 세부적으로 다음과 같이 구성되어 있습니다. Schem..

    [ASP.NET Core] Session

    1. Service 설정 Startup.cs의 ConfigureServices() method에서 Session을 사용하기 위한 Service를 추가합니다. services.AddDistributedMemoryCache(); services.AddSession(option => { option.Cookie.Name = "mySession"; option.IdleTimeout = TimeSpan.MaxValue; //기본값 20분 }); AddDistributedMemoryCache() method는 Server의 Cache memory를 사용하도록 하기 위한 것으로 Session을 저장하기 위함이며 AddSession()은 Session자체의 설정으로 Cookie.Name으로 Session의 이름을, I..

    [ASP.NET Core] Logging

    [ASP.NET Core] Logging

    1. NuGet Package 설치 NuGet에서 etEscapades.Extensions.Logging.RollingFile package를 project에 설치합니다. 2. Log File 설정 Program.cs를 다음과 같이 수정해 ConfigureLogging method를 설정합니다. Host.CreateDefaultBuilder(args) .ConfigureLogging((hostingContext) => hostingContext.AddFile(options => { options.FileName = "log-"; options.LogDirectory = "Logs"; options.FileSizeLimit = null; //기본 10MB, 단위 MB options.RetainedFileC..

    [ASP.NET Core] Claim 인증과 권한

    [ASP.NET Core] Claim 인증과 권한

    Claim은 특정한 key값을 통해 사용자 인증 및 권한을 관리하며 여기에 필요한 data를 추가하여 사용할 수 있는 인증방법입니다. 1. 기본설정 Startup.cs의 ConfigureServices() method에 인증 및 권한에 관련한 service를 추가합니다. services.AddAuthentication(defaultScheme: CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(option => { option.AccessDeniedPath = "/Home/Error"; option.LoginPath = "/login"; }); services.AddAuthorization(); services.AddHttpContextAcces..

    [ASP.NET Core] 암호화 사용하기(DataProtection)

    1. Class Library형식의 Project를 생성하고 'Microsoft.AspNetCore.DataProtection' 이름의 Nuget package를 설치합니다. 2. project에 다음과 같은 class를 추가해 사용할 암호화 algorithm을 지정합니다. 예제에서는 myWebLibrary라는 이름의 project를 생성하였습니다. using Microsoft.Extensions.DependencyInjection; using System; using Microsoft.AspNetCore.DataProtection; using Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel; namespace ..