在dotnetNuke验证中检查唯一用户名

本文关键字:唯一 用户 检查 dotnetNuke 验证 | 更新日期: 2023-09-27 18:28:32

我有下面的代码,我想在其中验证输入的用户名是否已经存在。我检查了dotNetNuke的内置验证,但我什么都不懂。以下是内置代码。。

UserInfo user = UserController.GetUserByName(PortalId, User.Username);
if (user != null)
{
    if (PortalSettings.Registration.UseEmailAsUserName)
    {
        CreateStatus = UserCreateStatus.DuplicateEmail;
    }
    else
    {
        CreateStatus = UserCreateStatus.DuplicateUserName;
        int i = 1;
        string userName = null;
        while (user != null)
        {
            userName = User.Username + "0" + i.ToString(CultureInfo.InvariantCulture);
            user = UserController.GetUserByName(PortalId, userName);
            i++;
        }
        User.Username = userName;
    }
}

我的代码如下。

public HttpResponseMessage SaveClientDetail(ClientDto dto)
{
    var user = new UserInfo();
    UserCreateStatus CreateStatus;
    user.FirstName = dto.FirstName;
    user.LastName = dto.LastName;
    user.Email = dto.Email;
    user.Username = dto.Email;
    user.DisplayName = dto.FirstName + " " + dto.LastName;

    UserController.CreateUser(ref user);
    return Request.CreateResponse(HttpStatusCode.OK, dto);
}

我想在创建对象之前验证我的用户。用户名。还请解释一下让我理解这一点的内置代码快速回复。。

在dotnetNuke验证中检查唯一用户名

代码基本上基于"username"获得一个UserInfo对象,如果该对象为NULL,则可以假设用户名不存在。

根据您的要求,没有任何DNN方法来验证单个用户名。您必须传递UserData对象,如下所示,它将为您提供对象的状态,如DuplicateUserNameDuplicateDisplayNameDuplicateEmail。。。etc

DotNetNuke.Security.Membership.UserCreateStatus objCreateStatus =
DotNetNuke.Entities.Users.UserController.CreateUser(ref objUser);

如果您想在将UserData对象传递给CreateUser方法之前检查重复的Username,我建议您在类中创建一个将返回布尔值true/false的方法。您可以编写如下查询,并获取现有用户名的计数。如果查询返回任何Count > 0,则方法返回true,否则返回false。

样本方法:

public bool validateUsername(string fsUsername)
{
     bool lbFlag = false;
     int liCount = 0;
     // query = SELECT COUNT(1) FROM [dbo].[Users] WHERE [Username] = '@Username'
     // Write C# code to get you count value
     if(liCount > 0)
     {
         lbFlag = true;
     }
     return lbFlag;
}

在创建UserData对象之前调用此方法之后。如果你需要更多关于DNN中用户创建的信息,我请求你至少阅读一次这个链接。

如果你有任何问题,请告诉我。