在ASP.Net Core 2.1中,使用身份核心(Identity Core)进行登录后立即添加重定向,可以通过以下步骤实现:
Startup.cs
文件的ConfigureServices
方法中添加以下代码来实现:services.AddIdentity<IdentityUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
这将添加身份核心服务,并将用户和角色存储在ApplicationDbContext
中。
Startup.cs
文件的Configure
方法中,添加身份核心的中间件,以便在请求处理管道中启用身份验证和授权功能。可以使用以下代码实现:app.UseAuthentication();
[Authorize]
属性进行身份验证。例如,可以在控制器的顶部添加以下代码:[Authorize]
public class HomeController : Controller
{
// Controller actions
}
这将要求用户在访问该控制器的任何操作之前进行身份验证。
POST
方法中使用return Redirect(returnUrl)
语句。returnUrl
是登录页面中的隐藏字段,用于存储用户在登录之前尝试访问的URL。以下是一个示例:[HttpPost]
public async Task<IActionResult> Login(LoginViewModel model, string returnUrl = null)
{
// Validate the login credentials
if (ModelState.IsValid)
{
var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false);
if (result.Succeeded)
{
if (!string.IsNullOrEmpty(returnUrl) && Url.IsLocalUrl(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError(string.Empty, "Invalid login attempt.");
}
}
return View(model);
}
在上述代码中,如果登录成功且returnUrl
不为空且是本地URL,则将用户重定向到returnUrl
指定的页面。否则,将用户重定向到主页。
请注意,以上代码只是一个示例,实际实现可能会根据项目的具体需求有所不同。
关于ASP.Net Core身份核心的更多信息,可以参考腾讯云的相关文档和产品介绍:
领取专属 10元无门槛券
手把手带您无忧上云