Webmatrix.WebData.WebSecurity和MySql不起作用.在WebSecurity.UserExi
本文关键字:WebSecurity UserExi 不起作用 WebData Webmatrix MySql | 更新日期: 2023-09-27 18:28:42
我在MSSQL中完成了一个项目。我将MSSQL迁移到MySql是因为我认为Webmatrix.WebData也将支持MySql。Web安全初始化成功。
if (!WebSecurity.Initialized)
{
securityService.Initialize(
"sqlserver",
"UserProfile",
"UserId"
"UserName");
};`
以上代码执行成功。但如果未能执行以下部分,
if (!WebSecurity.UserExists("user"))
{
WebSecurity.CreateUserAndAccount("user", "password");
}
检查WebSecurity.UserExists("user")
失败。这是错误消息-
MySql.Data.dll中出现"MySql.Data.MySqlClient.MySqlException"类型的异常,但未在用户代码中处理
附加信息:您的SQL语法有错误;在第1行的'[UserId]FROM[UserTable]WHERE(UPPER([UserName])=UPPER
请帮我解决这个问题。
ASP.Net附带的WebSecurity(上面代码中使用的那个)在代码中嵌入了一些Microsoft T-SQL语法。MySQL语法和MSSQL之间几乎没有什么区别,这可能是导致错误的原因。
从显示的错误中,我可以看到WebSecurity中的CreateUserAndAccount
方法以某种方式试图执行T-SQL语句.... [UserId] FROM [UserTable] WHERE (UPPER([UserName]) = UPPER('user'))
,然而,虽然这在MSSQL中有效,但方括号"["
和"]"
会在MySQL中导致错误。
解决方法是使用MySql.Web.Security.MySqlWebSecurity.CreateUserAndAccount("user", "password")
,当然,您可以添加using
语句或以这种方式使用它。
请参阅链接