C# 在Identity Server 4中,如何添加实际用户,而不是测试用户
我正在学习Identity Server 4,所有给出的示例都显示了如何通过中间件配置“AddTestUsers()”添加测试(演示示例)用户,这让我很沮丧 如何实际添加自己的用户??C# 在Identity Server 4中,如何添加实际用户,而不是测试用户,c#,.net,.net-core,identityserver4,C#,.net,.net Core,Identityserver4,我正在学习Identity Server 4,所有给出的示例都显示了如何通过中间件配置“AddTestUsers()”添加测试(演示示例)用户,这让我很沮丧 如何实际添加自己的用户?? 我想在这里问这个问题,这样将来其他新手就可以了解这个问题。添加用户(用户名+密码)是使用Identity Server的主要原因之一 显然,如果你想使用真实的信息,你需要连接到你的数据库 连接数据库 当局提供了非常详细的连接方案。这里是连接解决方案 自定义用户 通常,我们更喜欢自定义用户属性。您需要创建一个从Id
我想在这里问这个问题,这样将来其他新手就可以了解这个问题。添加用户(用户名+密码)是使用Identity Server的主要原因之一 显然,如果你想使用真实的信息,你需要连接到你的数据库 连接数据库 当局提供了非常详细的连接方案。这里是连接解决方案 自定义用户 通常,我们更喜欢自定义用户属性。您需要创建一个从
IdentityUser
继承的自定义用户
公共类应用程序用户:IdentityUser
{
//你想要的每一个属性
// ...
}
对于用户,需要自定义DB上下文:
public类ApplicationDbContext:IdentityDbContext
修改登录页面的内容
在Quickstart/Account/AccountController.cs
中,您可以看到TestUser
被注入到构造函数中。删除它并注入以下内容:
UserManager用户管理器,
SignInManager SignInManager
查找Login
post操作,修改登录验证逻辑
公共异步任务登录(LoginInputModel模型,字符串按钮)
{
//其他代码
// ...
//这个登录逻辑
if(ModelState.IsValid)
{
var user=await\u userManager.FindByNameAsync(model.Username);
如果(用户!=null)
{
var result=await _signInManager.PasswordSignInAsync(user.UserName,model.Password,model.RememberLogin,true);
if(result.successed)
{
//在这里,您可以在成功登录后执行一些操作
// ...
wait_events.RaiseAsync(新的userloginsAccessEvent(user.UserName,user.Id.ToString(),user.UserName));
}
if(_interaction.IsValidReturnUrl(model.ReturnUrl)| | Url.IsLocalUrl(model.ReturnUrl))
{
返回重定向(model.ReturnUrl);
}
返回重定向(“~/”);
}
}
//其他代码
}
var builder = services.AddIdentityServer(options =>
{
options.Events.RaiseErrorEvents = true;
options.Events.RaiseInformationEvents = true;
options.Events.RaiseFailureEvents = true;
options.Events.RaiseSuccessEvents = true;
// see https://identityserver4.readthedocs.io/en/latest/topics/resources.html
options.EmitStaticAudienceClaim = true;
})
.AddTestUsers(TestUsers.Users)