【发布时间】:2014-07-20 21:08:03
【问题描述】:
VS 2013,框架 4.5.1 ...
我运行 Aspnet_regsql.exe 来创建架构。它创建了带有下划线的表:例如 aspnet_Users。它还创建了相关的存储过程。这些存储过程确实有效,它们向表中添加记录:例如,将用户添加到 aspnet_Users。
当我尝试使用 Login.aspx 时,它在 manager.Find 上崩溃并出现错误:“无效的对象名称 'dbo.AspNetUsers'。”
protected void LogIn(object sender, EventArgs e)
{
if (IsValid)
{
// Validate the user password
var manager = new UserManager();
ApplicationUser user = manager.Find(UserName.Text, Password.Text);
if (user != null)
{
IdentityHelper.SignIn(manager, user, RememberMe.Checked);
IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);
}
else
{
FailureText.Text = "Invalid username or password.";
ErrorMessage.Visible = true;
}
}
}
【问题讨论】:
-
您找到解决方案了吗?我在 VS 2013 上的 EntityFramework 生成的表(如 dbo.AspNetUsers)中遇到了类似的问题,但是当使用 aspnet_regsql 工具实现角色管理器功能时,它会创建 dbo.aspnet_Users。
-
Ask.Net Identity 使用代码优先迁移来创建它的数据库表。而不是运行 aspnet_regsql(这将与旧的成员资格提供程序相关),而是要运行数据库迁移。
-
@DrazenBjelovuk - 互联网之美:一些工具,如 aspnet_regsql,已经过时,但网页仍然存在。我最终进行了很多手动编辑,终于让它工作了。
-
@BrendanGreen 从什么迁移?如何迁移?
-
从下面的菜单
Tools -> NuGet Package Manager -> Package Manager Console,然后运行Update-Database -ProjectName Project.That.Defines.Context -ConnectionString "CnnStringToDatabase" -ConnectionProviderName System.Data.SqlClient"
标签: asp.net authentication roles