网上找的备用。
背景是在一个项目中增加临时登录功能,只需验证用户是否登录即可,所需的最低配置与实现代码如下。
在 Startup 的 ConfigureServices() 方法中添加 Authentication 的配置:
services .AddAuthentication(options => { options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme; options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme; }) .AddCookie();
在 Startup 的 Configure() 方法中将 Authentication 添加到请求管线:
app.UseAuthentication();
在登录程序中验证通过用户名/密码后,通过下面的代码生成登录 Cookie 并发送给客户端:
var claimsIdentity = new ClaimsIdentity( new Claim[] { new Claim(ClaimTypes.Name, model.Email) }, "Basic" ); var claimsPrincipal = new ClaimsPrincipal(claimsIdentity); await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, claimsPrincipal);