c# - 在服务器端 Blazor 中使用 SignInManager
问题描述
SignInManager
没有一些可以使用HTTPContext
吗?我正在制作一个 Blazor 服务器端应用程序,我需要让最终用户PasswordSignInAsync()
使用SignInManager
.
如果还有其他方法可以使用 cookie 或其他方法,我也会采用,只要它们是“干净”的方法。
如果我还可以获得有关如何配置Startup.cs
解决方案的说明,那将是完美的。
解决方案
要在服务器端 Blazor 中使用 SignInManager,
首先,将AddIdentity
服务添加到Startup.cs
services.AddIdentity<IdentityUser, IdentityRole>(options => {
options.SignIn.RequireConfirmedAccount = false;
})
.AddEntityFrameworkStores<AppDBContext>()
.AddDefaultTokenProviders();
然后,注入SignInManager
你的剃须刀页面
@using Microsoft.AspNetCore.Identity
@inject SignInManager<IdentityUser> SignInManager
@inject NavigationManager navManager;
<!-- Put Login Form Here -->
@code{
protected async Task Submit()
{
var SignInResult= await SignInManager.PasswordSignInAsync("username", "password", true, lockoutOnFailure: false);
if (SignInResult.Succeeded)
{
navManager.NavigateTo("Home", false);
}
}
}
推荐阅读
- react-native - 如何根据反应原生的屏幕方向更改平面列表的列数和行数?
- c# - 如何从 Texture2D 获取原始像素数据?
- c++ - 划分为组的集合的词典等级
- pysftp - Pysftp无法将文件从远程服务器移动到本地
- pandas - PySpark SQL 中用户定义的聚合函数
- puppet - 有没有办法在 Puppet 中显示分配给节点的角色和服务帐户列表?
- progressive-web-apps - 我可以同时拥有 Workbox registerroute 和 service worker fetch 事件处理程序吗?
- java - 如何更新未来地图?
- python-3.x - 受先前调用困境影响的 Python 函数调用
- typescript - 为什么类型保护类型的扩展会导致类型检查被跳过?