我已将Asp.Net MVC 5应用配置为使用外部登录(我不打算使用本地登录)。
要获取登录用户的电子邮件地址,我正在执行此操作
Membership.GetUser().Email
但那是投掷
Host 'xxx' is not allowed to connect to this MySQL server
我可以很好地连接到数据库。登录,注销,获取其他数据。 这也很好。
User.Identity.GetUserName()
只有在使用会员资料时系统才会爆炸。
此处配置的ConnectionString不存在于web.config中。不知道它是如何解决的!
<membership defaultProvider="MySQLMembershipProvider">
<providers>
<remove name="MySQLMembershipProvider" />
<add name="MySQLMembershipProvider" type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.9.6.0, Culture=neutral, PublicKeyToken=xxx" connectionStringName="LocalMySqlServer" ... />
</providers>
</membership>
如果我将连接字符串更新为现有的,正在运行的EF字符串,它会抱怨它不支持关键字元数据。
电子邮件地址位于aspnetusers
表格中。我确信我可以通过调用db手动获取它,但我想知道Asp.Net是否已经为我做了这个。
答案 0 :(得分:0)
你可以这样做,
var user = UserManager.FindById(User.Identity.GetUserId());
user
将包含用户的电子邮件地址。