无法在默认 MVC 应用程序中存储用户
Can't store users in the default MVC application
我之前在使用授权时遇到了一些问题,所以我得到了全新的一切 - 新计算机、新 OS、全新安装的 VS、Azure 上新资源组中的新应用程序和数据库。整个沙帮。
我可以确认我可以登录到 Azure 数据库,如下面的屏幕截图所示。
我可以看到数据库、表、用户等
问题是,虽然它在本地工作(使用自动为我提供的默认连接字符串),但它在 Azure 中的表现不是很好(尽管我正在使用那里的发布文件)。它说找不到文件,根据 this answer,我需要更改连接字符串。
修改后出现如下错误。请注意,防火墙是打开的,当我 运行 我的应用程序代码时,我可以访问数据库。我觉得自动配置身份验证部分时出现问题。不过,我不知道如何解决它。
[SqlException (0x80131904): Login failed for user 'Chamster'.
This session has been assigned a tracing ID of '09121235-87f3-4a92-a371-50bc475306ca'. Provide this tracing ID to customer support when you need assistance.]
我使用的连接字符串是这个
Server=tcp:f8goq0bvq7.database.windows.net,1433;
Database=Squicker;
User ID=Chamster@f8goq0bvq7;
Password=Abc123();
Encrypt=True;
TrustServerCertificate=False;
Connection Timeout=10;
这个问题困扰了我一段时间,我会在两天内解决它。热烈欢迎任何建议。
我相信我已经设法解决了这个奇怪的问题。看起来我正在使用的用户,尽管是管理员,但在连接字符串中使用并尝试创建表时(第一次注册时就是这种情况),却没有被识别为管理员。
我的解决方案是创建两个登录名 - 一个具有 db_owner 角色,一个具有 db_datareader 和db_datawriter。首先,我在我的连接字符串中使用了提升的用户并注册了一个用户。这在数据库中创建了如下所示的表。
然后,虽然能够以管理员身份继续,但我意识到我们应该尝试降级用户和 tada!,它工作得很好。一旦桌子在那里,整个 shabeling 的行为就如预期的那样。
可以肯定的是,我从数据库中删除了表,它就在那里 - 和以前一样的问题。当我更改为提升用户时,表已恢复,让我可以回到降级用户。
我还尝试删除表格,确认问题重新出现,然后手动创建表格。这也行!所以基本上,导致这一切的唯一陷阱是未被视为管理员的原始管理员。
这可能与以下事实有关:我的 Azure 帐户有点旧,那里使用的 LiveID 很古老,并且 Azure 中没有更新版本的 DB(执行了 v12 的上拉) 12 月 18 日,所以它也可能是让它工作的必要条件)。我太累了也懒得去检查,我意识到我不知道如何获得 "old" 类型的帐户。另外,随着老账号的升级,这个问题会逐渐减少并逐渐消失。
我之前在使用授权时遇到了一些问题,所以我得到了全新的一切 - 新计算机、新 OS、全新安装的 VS、Azure 上新资源组中的新应用程序和数据库。整个沙帮。
我可以确认我可以登录到 Azure 数据库,如下面的屏幕截图所示。
我可以看到数据库、表、用户等
问题是,虽然它在本地工作(使用自动为我提供的默认连接字符串),但它在 Azure 中的表现不是很好(尽管我正在使用那里的发布文件)。它说找不到文件,根据 this answer,我需要更改连接字符串。
修改后出现如下错误。请注意,防火墙是打开的,当我 运行 我的应用程序代码时,我可以访问数据库。我觉得自动配置身份验证部分时出现问题。不过,我不知道如何解决它。
[SqlException (0x80131904): Login failed for user 'Chamster'. This session has been assigned a tracing ID of '09121235-87f3-4a92-a371-50bc475306ca'. Provide this tracing ID to customer support when you need assistance.]
我使用的连接字符串是这个
Server=tcp:f8goq0bvq7.database.windows.net,1433;
Database=Squicker;
User ID=Chamster@f8goq0bvq7;
Password=Abc123();
Encrypt=True;
TrustServerCertificate=False;
Connection Timeout=10;
这个问题困扰了我一段时间,我会在两天内解决它。热烈欢迎任何建议。
我相信我已经设法解决了这个奇怪的问题。看起来我正在使用的用户,尽管是管理员,但在连接字符串中使用并尝试创建表时(第一次注册时就是这种情况),却没有被识别为管理员。
我的解决方案是创建两个登录名 - 一个具有 db_owner 角色,一个具有 db_datareader 和db_datawriter。首先,我在我的连接字符串中使用了提升的用户并注册了一个用户。这在数据库中创建了如下所示的表。
然后,虽然能够以管理员身份继续,但我意识到我们应该尝试降级用户和 tada!,它工作得很好。一旦桌子在那里,整个 shabeling 的行为就如预期的那样。
可以肯定的是,我从数据库中删除了表,它就在那里 - 和以前一样的问题。当我更改为提升用户时,表已恢复,让我可以回到降级用户。
我还尝试删除表格,确认问题重新出现,然后手动创建表格。这也行!所以基本上,导致这一切的唯一陷阱是未被视为管理员的原始管理员。
这可能与以下事实有关:我的 Azure 帐户有点旧,那里使用的 LiveID 很古老,并且 Azure 中没有更新版本的 DB(执行了 v12 的上拉) 12 月 18 日,所以它也可能是让它工作的必要条件)。我太累了也懒得去检查,我意识到我不知道如何获得 "old" 类型的帐户。另外,随着老账号的升级,这个问题会逐渐减少并逐渐消失。