在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);
}
我想在创建对象之前验证我的用户。用户名。还请解释一下让我理解这一点的内置代码快速回复。。
代码基本上基于"username"获得一个UserInfo对象,如果该对象为NULL,则可以假设用户名不存在。
根据您的要求,没有任何DNN方法来验证单个用户名。您必须传递UserData对象,如下所示,它将为您提供对象的状态,如DuplicateUserName
、DuplicateDisplayName
、DuplicateEmail
。。。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中用户创建的信息,我请求你至少阅读一次这个链接。
如果你有任何问题,请告诉我。