如果链接的MembershipUser未获批准,则阻止OpenAuth登录

时间:2013-07-20 19:15:27

标签: asp.net webforms asp.net-membership dotnetopenauth

我在我的网站上注册后开发了一个电子邮件激活系统。当用户注册时,我将IsApproved设置为false。只要我使用本地登录,这种方法就完全正常。

问题在于:如果用户向OpenAuth注册,我创建了成员资格用户并将IsApproved设置为false - 但仍然可以使用OpenAuth登录。我猜IsApproved只是用于验证用户名/密码。

这是OpenAuth自动生成登录序列的一部分:

if (OpenAuth.Login(authResult.Provider, authResult.ProviderUserId, createPersistentCookie: false))
{
    RedirectToReturnUrl();
}

基本上,我需要的是获取与OpenAuth凭据相关联的成员资格用户名,以便我可以检查用户是否获得批准并采取行动,但我无法弄清楚如何。

我尝试过为这些OpenAuth凭据获取OpenAuthAccountData类的实例,但我找不到任何内容。

1 个答案:

答案 0 :(得分:0)

只是不要调用OpenAuth.CreateUser。用户进行身份验证后,您可以使用“authResult.UserName”获取用户名。在调用CreateUser之前,数据库中不会创建任何内容。