我在我的网站上注册后开发了一个电子邮件激活系统。当用户注册时,我将IsApproved设置为false。只要我使用本地登录,这种方法就完全正常。
问题在于:如果用户向OpenAuth注册,我创建了成员资格用户并将IsApproved设置为false - 但仍然可以使用OpenAuth登录。我猜IsApproved只是用于验证用户名/密码。
这是OpenAuth自动生成登录序列的一部分:
if (OpenAuth.Login(authResult.Provider, authResult.ProviderUserId, createPersistentCookie: false))
{
RedirectToReturnUrl();
}
基本上,我需要的是获取与OpenAuth凭据相关联的成员资格用户名,以便我可以检查用户是否获得批准并采取行动,但我无法弄清楚如何。
我尝试过为这些OpenAuth凭据获取OpenAuthAccountData类的实例,但我找不到任何内容。
答案 0 :(得分:0)
只是不要调用OpenAuth.CreateUser。用户进行身份验证后,您可以使用“authResult.UserName”获取用户名。在调用CreateUser之前,数据库中不会创建任何内容。