我在ASP.NET网站上工作,不幸的是我必须使用MySql来存储网站的数据。
我真的很难让MySql使用CreateUserWizard
功能,而我只是失去了它。
直到我在Web.Config
中定义自定义属性,一切都很好,我实际上设法注册了一些假用户。然后我想添加一些其他属性,如地址,性别等。我在Web.Config
中添加了这些属性,如下所示:
的Web.Config
<profile enabled="true" defaultProvider="MySqlProfileProvider">
<providers>
<clear/>
<add name="MySqlProfileProvider" autogenerateschema="True" type="MySql.Web.Profile.MySQLProfileProvider, MySql.Web, Version=6.8.3.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D" conectionStringName="connMySql" applicationName="/"/>
</providers>
<properties>
<add name="Nome" type="string"/>
<add name="Cognome" type="string"/>
<add name="Sesso" type="string"/>
<add name="DataNascita" type="datetime"/>
<add name="Indirizzo" type="string"/>
<add name="Citta" type="string"/>
<add name="Provincia" type="string"/>
<add name="CAP" type="int"/>
</properties>
</profile>
请注意我的连接字符串是正确的,因为我在Web.Config的其他部分使用它并且运行得很好。
稍后,在我的注册页面中,我编写了此代码(当然,在验证输入之后),以更新创建的用户。
register.aspx.cs
protected void wizard1_CreatedUser(object sender, EventArgs e)
{
ProfileCommon p = (ProfileCommon)ProfileCommon.Create(wizard1.UserName, true);
p.Nome = ((TextBox)wizard1.CreateUserStep.ContentTemplateContainer.FindControl("Nome")).Text;
p.Cognome = ((TextBox)wizard1.CreateUserStep.ContentTemplateContainer.FindControl("Cognome")).Text;
p.Sesso = ((DropDownList)wizard1.CreateUserStep.ContentTemplateContainer.FindControl("Sesso")).SelectedValue;
p.DataNascita = System.Convert.ToDateTime(((TextBox)wizard1.CreateUserStep.ContentTemplateContainer.FindControl("DataNascita")).Text);
p.Indirizzo = ((TextBox)wizard1.CreateUserStep.ContentTemplateContainer.FindControl("Indirizzo")).Text;
p.Citta = ((TextBox)wizard1.CreateUserStep.ContentTemplateContainer.FindControl("Citta")).Text;
p.Provincia = ((TextBox)wizard1.CreateUserStep.ContentTemplateContainer.FindControl("Provincia")).Text;
p.CAP = System.Convert.ToInt32(((TextBox)wizard1.CreateUserStep.ContentTemplateContainer.FindControl("CAP")).Text);
p.Save();
}
所有控件都放在.aspx
页面中。
因此,当我运行页面时,我可以看到表单并输入数据。然后我的代码验证输入,如果它都正确,它会创建用户并进入{{1函数,它停在wizard1_CreatedUser
部分,这实际上是第一条使用p.Nome = ...
的指令。
它只是说MySqlProfileProvider
但是 Host 'Hostname' is not allowed to connect to this MySQL server
和MySqlRoleProvider
工作正常。实际上,用户已创建,但我的自定义配置文件数据不存在,因为代码会停在那里。
我使用具有所有权限的数据库用户。
我可能遗漏了一些东西,但我真的不知道是什么。
谢谢。
答案 0 :(得分:0)
原来我需要启用完全信任。
此外,一些文件被错误定位(它们不在网站的根目录中)。