こんにちは。 クラウド事業本部コンサルティング&テクノロジー部の茨木です。 今回は、ASP.NET Core Identity です。 Visual Studio がテンプレート実装をしてくれますが、そのまま全て動かせる程に構成済み状態となっています。カスタマイズしようにも構成はDIで隠蔽されていて、初見ではどこから手を付けていいのか迷いますね。しかも SQL Server を前提に構成された上に、EntityFramework まで組み付けられてしまいますが、こんなの邪魔ですよね。ということで、テンプレートに手を加え、ASP.NET Core Identity に則りつつ、独自のデータストアで認証を実装してみたいと思います。 この記事はネクストスケープ クラウド事業本部 Advent Calendar 2017 の9日目となります。 プロジェクト作成 プロジェクトテンプレートからプロジェ
はじめに 基本、自分用のメモです。 多層システムで構築されたウェブアプリケーションにおいて、DbContextやLoginInfoのようなリクエスト毎に生成・破棄し、全体で共有するオブジェクトを誰が生成し誰が破棄する責務をもつのか、またそれらを各オブジェクトがどこから取得するのかという問題を、DI(依存性オブジェクトの注入)を使って解決する、という記事になります。 既にDIを使い倒している方には今更な内容かと思いますが、私のように古いシステムのメンテナンスをしていた人には有用かと思います。 この記事をかいた理由 ASP.NETでDIコンテナ使ってDbContextを注入するサンプルをいくら検索しても、ControllerでDbContextを受け取っていきなりそこでDBにアクセスする初歩的な実装例しか出てこなくて、「コントローラでDB層にアクセスするとか、そんないい加減なシステムがあってた
Webアプリを開発する際に、取得したデータを一時的にアプリ内にキャッシュしておきたいことは多々あります。ASP.NET Coreではそういったオブジェクトのキャッシュする手段が標準で2つ用意されています。1つは IMemoryCache で得られるアプリ内のメモリ空間を使用するもの、もう1つが IDistributedCache で得られる分散型のものです。この記事では前者の、インメモリキャッシュについて特徴や使用方法について簡単に紹介します。 前提条件 この記事は以下のバージョンで検証しています。 Windows 10 x64 (1803) Visual Studio 2017 (15.8.2) Community .NET Core SDK 2.1.401 (ASP.NET Core 2.1.3) ASP.NET Coreのインメモリキャッシュ ASP.NET Coreでインメモリキャ
こんにちは、サイオステクノロジー技術部 武井です。今回は、APS.NET Coreの主要な機能の一つであるDelendency Injection(以降、DIと呼称)について、書きたいと思います。 DIはビジネスロジックの中ではインターフェースだけを定義し、その実装を外部から注入(Injection)するという実装方法で、レトロなところでいいますと、JavaのフレームワークであるSeasar、Google謹製のフレームワークGoogle Guice、最近ではSpring Bootなどで使われており、古くから使われている方式です。 APS.NET CoreではDIが標準装備になっています。いいですね。 やってみる ということで、以下の要件を満たすアプリケーションをDIを使って、作成します。 MVCなアプリケーションで、朝の挨拶、夜の挨拶を返すクラスをDIして、ブラウザに「Good Morin
こんにちは、アーキテクトの小林です。 .NET Framework は長年に渡って多くの Windows ベースのアプリケーションの開発現場で採用されてきたものですから、.NET Core への移行は「まだまだこれから」という状態ではないかと思います。 .NET Framework のアプリケーションを .NET Core に移行しようと思ったとき、違いが大きすぎて最初に困惑するポイントが設定情報の管理方法の違いであろうかと思っています。 当社の主力製品である ecbeing も .NET Framework でつくられていますが、ecbeing は EC のパッケージ製品ですのでお客様のニーズに合わせて設定による機能のオンオフや、機能の挙動の変更が可能になっており、非常に多くの設定項目が存在します。 したがって設定情報の管理の柔軟さは ecbeing 社のエンジニアにとっては、とてもとて
今回、参照するappsettings.jsonの内容は以下の通りとします。 { "UserName": "ユーザー名", "Password": "パスワード", "App":{ "Window":{ "Width": 800, "Height": 600 } } } 一番シンプルな取得方法。 public class HomeController : Controller { private readonly Configuration _configuration; public HomeController(IConfiguration configuration) { _configuration = configuration; } public IActionResult Index() { var userName = _configuration.GetValue<stri
using Microsoft.EntityFrameworkCore; namespace CreateDbSample.Models { public class ShopDbContext : DbContext { public ShopDbContext(DbContextOptions options) : base(options) { } public DbSet<Product> Products { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseSqlite("Data Source=shop.db"); } } using CreateDbSample.Models; using Microso
Web テンプレートを使用して作成した ASP.NET Core アプリでは、Program.cs ファイルにアプリケーション スタートアップ コードが入っています。 この記事のガイダンスに追加されるまたは優先する Blazor 起動のガイダンスについては、「ASP.NET Core Blazor の起動」をご覧ください。 以下をサポートするアプリ スタートアップ コードを示します。 Razor Pages ビューのある MVC コントローラー コントローラーを使用した Web API 最小 API var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddRazorPages(); builder.Services.AddControlle
2017年8月14日、「ASP.NET Core 2.0」が公開されました。また同時に実行基盤である「.NET Core 2.0」やO/Rマッパーである「Entity Framework Core 2.0」も公開されたことで、ASP.NET Coreもいよいよ実用レベルとなってきました。さらに、「Razor Pages」やSPAテンプレートの充実など、従来のASP.NETにないASP.NET Coreが先行する機能も登場しました。本連載ではそれらのASP.NET Core 2.0の魅力を新機能の説明を中心に紹介していきます。1回目の今回は、ASP.NETの概要と、ASP.NET Core 2.0で追加された新機能、および導入方法について紹介します。 対象読者 新しいASP.NET Coreの機能について知りたい方 MacやLinuxなどでASP.NET Coreアプリケーションを動かしたい
Hello World, ASP.NET Core 1.0! 07/07/2016 4 minutes to read ご存じの方も多いと思いますが、先日、クロスプラットフォーム対応の ASP.NET Core 1.0 が正式リリースされました。Windows OS だけでなく、Linux や Mac OS 上でも動作する新しいランタイムとして設計・実装されているのですが、半面、MVC/EF の知識を必須とするため、ASP.NET Web Forms や型付きデータセットで開発されてきた方々には、非常にハードルが高い開発プラットフォームにもなっています。 このハードルの高さは、先日の de:code 2016 DEV-010 「エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法」でもお話しさせていただいた SPA 型開発でも触れた話で、高水準
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く