gpt4 book ai didi

c# - WEB API 2 身份 - 使用现有数据库

转载 作者:太空宇宙 更新时间:2023-11-03 15:45:57 25 4
gpt4 key购买 nike

我正在尝试将 Web API 2 与基于 token 的身份验证结合使用。但是我想用我自己的数据库。用户已创建。我已经重命名了 OnModelCreating 中的表, 所以我有适当的表名称,如 Users、UserRole 而不是 Asp.netUsers 等。我更改 ApplicationDbContext 的连接字符串以连接到我的数据库。

所以当我通过 web api 注册新用户时,它会在表中正确创建用户,并且没问题。但是当我尝试创建一个新的承载 token 并且当它尝试如下查找用户时,它总是返回 null。不知道为什么。我所有的配置都是默认的,所以我无法理解。当我尝试搜索用户时,我总是在下面得到空值。var user = await userManager.FindAsync(context.UserName, context.Password);

我是否必须执行任何特殊操作才能使 Web API 2 身份验证与我现有的数据库一起工作?

最佳答案

我解决了这个问题。我还不是很清楚,但现在它工作正常。为什么会出现问题:当我为我的连接字符串更改 ApplicationDbContext 构造函数时,第一次我做不到,因为在启动时出错(Unknow distributor Ado.net providerName),所以我在参数ApplicationDbContext中读取了真正的连接字符串(“Data Source=xxx.xxx.xxx.xxx; Initial Catalog=NameDB; ......... ).

public ApplicationDbContext()
: base("Data Source=xxx.xxx.xxx.xxx; Initial Catalog=NameDB; .........")
{
}

编译没问题,但我遇到了上面的问题。之后,我读取了构造函数的正确文本(参数 - 来自 Web.config 的名称连接字符串 -“MyConnection”),

public ApplicationDbContext()
: base("MyConnection")
{
}

并删除此连接字符串的标记 providerName="System.Data.SqlClient"。出现错误“需要 providerName...”,我返回了这个标签。之后启动正常,应用程序工作正常,我怎么看。

关于c# - WEB API 2 身份 - 使用现有数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28142869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com