私は同じ問題がありました。いくつかの研究と調整の後、それは働いた... 今私は問題が次のようだと思う。最初に私は
var claimsPrincipal = new ClaimsPrincipal(new ClaimsIdentity(myclaims));
を以下のように構成された校長があったが、実際にそれが今、この文字列「MyCookieMiddlewareInstanceは」apperently設定する必要があります。この
var claimsPrincipal = new ClaimsPrincipal(new ClaimsIdentity(myclaims, "MyCookieMiddlewareInstance"));
ようにされている必要があります。これもそのちょっと遅れている場合に役立ちますStartup.cs
で
public void Configure(IApplicationBuilder app)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationScheme = "MyCookieMiddlewareInstance",
LoginPath = new PathString("/Auth/Login"),
AccessDeniedPath = new PathString("/Auth/Denied"),
AutomaticAuthenticate = true,
AutomaticChallenge = true
});
app.UseMvc(routes =>
{
routes.MapRoute(
"default",
"{controller=Home}/{action=Index}/{id?}");
});
}
そしてAuthController.csで
[HttpPost]
public ActionResult Login(LoginModel model)
{
if (model.Username == "test" && model.Password == "pass")
{
var myclaims = new List<Claim>(new Claim[] { new Claim("Id", "SOME USER ID FROM SOMEWHERE!!") });
var claimsPrincipal = new ClaimsPrincipal(new ClaimsIdentity(myclaims, "MyCookieMiddlewareInstance"));
HttpContext.Authentication.SignInAsync("MyCookieMiddlewareInstance", claimsPrincipal).Wait();
return RedirectToAction("Index", "Home");
}
return View(new LoginModel());
}
希望:
また、これは完全なコンフィギュレーションとコントローラになります。