ユーザー管理は基幹システムで管理するので
Webサービス経由でログイン情報を取得する。
他のサンプルを見ても、usermanager経由だったので、
ClaimsIdentityを生成する方法が
分からんので、
単純にセッション変数を使ってログインを使用かな~と思ったが何とかサンプルが有ったので、記述しておく。
AccountControllerを以下のように修正
using Microsoft.AspNet.Identity;
using Microsoft.Owin.Security;
using System.Security.Claims;
using System.Web;
using System.Web.Mvc;
namespace Mvc5AuthSample.Controllers
{
public class AccountController : Controller
{
public ActionResult Login()
{
return View();
}
[HttpPost]
public ActionResult Login(string username, string password)
{
if (username == "alice" && password == "supersecret")
{
HttpContext.GetOwinContext().Authentication
.SignOut(DefaultAuthenticationTypes.ExternalCookie);
Claim claim1 = new Claim(ClaimTypes.Name, username);
Claim[] claims = new Claim[] { claim1 };
ClaimsIdentity claimsIdentity =
new ClaimsIdentity(claims,
DefaultAuthenticationTypes.ApplicationCookie);
HttpContext.GetOwinContext().Authentication
.SignIn(new AuthenticationProperties()
{ IsPersistent = false }, claimsIdentity);
return Redirect("/Home");
}
else
{
ModelState.AddModelError("",
"Invalid username or password.");
}
return View();
}
}
}
元ネタ
http://aspnetguru.com/adding-authentication-to-asp-net-mvc-5/
0 件のコメント:
コメントを投稿