在ASP.NET会员制供应商中设置电子邮件地址作为用户名

 2023-02-16    342  

问题描述

我想在成员资格API中使用电子邮件地址作为用户名,而不是接受用户名.
我希望用户可以使用电子邮件地址注册到我的网站,他可以使用电子邮件ID和密码登录,而是用户名和密码.

推荐答案

这就是我们所做的,所以它可以重复使用,我们可以在web.config中注册它.如果您想到它,这就是它的重要性.只要您的验证和前端向enduser表示他们的用户名应该是电子邮件,并且您可以从那里进行适当的验证…从那里进行正常呼叫.快捷方式的新方法,躲藏/改变我们门面后面的原件.

在ASP.NET会员制供应商中设置电子邮件地址作为用户名

public class EmailAsUsernameMembershipProvider : SqlMembershipProvider
{
    public MembershipUser CreateUser(string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
    {
        return base.CreateUser(email, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey, out status);
    }
    private new MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
    {
        return base.CreateUser(email, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey, out status);
    }

    public override bool RequiresUniqueEmail
    {
        get
        {
            return true;
        }
    }
}

其他推荐答案

这一切都可以如此帖子中所述,但是有一件事要知道:在数据库中,用户名是50个字符(表格),电子邮件(表成员资格)是256个字符.实际上这意味着更短的电子邮件地址. :)

其他推荐答案

只强制使用用户名=用户电子邮件.

执行此操作只需在用户创建表单上放置正则表达式验证器,以仅允许正确的电子邮件作为用户名.

重命名已根据用户的电子邮件的现有用户名.

以上所述是小编给大家介绍的在ASP.NET会员制供应商中设置电子邮件地址作为用户名,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/33885.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。