首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >关于asp会员的问题

关于asp会员的问题
EN

Stack Overflow用户
提问于 2009-04-17 19:16:55
回答 2查看 853关注 0票数 0

我有以下代码:

代码语言:javascript
代码运行次数:0
运行
复制
        if (Membership.FindUsersByName(username) == null)
        {
            Membership.CreateUser(username, password, email);
        }

        if (!Roles.RoleExists("USR"))
        {
            Roles.CreateRole("USR");
        }
        Roles.AddUserToRole(username,"USR");

数据正在被插入到aspnet_Users和aspnet_UsersInRoles中,但是数据没有被插入到aspnet_membership中,我需要这些数据,因为我正在使用asp登录控件。

有人能帮帮我吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-04-17 19:34:24

问题出在if语句上。它不工作的原因是因为FindUsersByName方法返回一个MembershipUsers集合。可能没有任何用户,但仍然会返回一个集合。

请将语句更改为以下内容...

代码语言:javascript
代码运行次数:0
运行
复制
if (Membership.FindUsersByName(username).Count == 0)
{
    Membership.CreateUser(username, password, email);
}

这应该就行了。

票数 0
EN

Stack Overflow用户

发布于 2009-04-17 19:25:42

试试这个。我相信你没有传递所有的参数。

代码语言:javascript
代码运行次数:0
运行
复制
string userName = txtUserId.Text;

//this value is either encrypted or hashed and is never displayed 
string password = txtPassword.Text; 

string email = txtEmail.Text;
string passwordQuestion = ddlPasswordQuestion.SelectedValue;

//this value is either encrypted or hashed and is never displayed 
string passwordAnswer = txtPasswordAnswer.Text;

MembershipCreateStatus result;
Membership.CreateUser(userName, password, email, passwordQuestion, passwordAnswer, true,out result);

lblResults.Visible = true;
switch (result) {
  case MembershipCreateStatus.Success:
    txtUserId.Text = null;
    txtPassword.Text = null;
    txtEmail.Text = null;
    ddlPasswordQuestion.SelectedIndex = -1;
    txtPasswordAnswer.Text = null;
    lblResults.Text = "User successfully created!";
    break;
  case MembershipCreateStatus.InvalidUserName:
    lblResults.Text = "The username format was invalid.  Please enter a different username.";
    break;
  case MembershipCreateStatus.InvalidPassword:
    lblResults.Text = "The password was invalid:  A password cannot be an empty string and must also meet the pasword strength requirements of the configured provider.  Please enter a new password.";
    break;
  case MembershipCreateStatus.InvalidEmail:
    lblResults.Text = "The email format was invalid.  Please enter a different username.";
    break;
  case MembershipCreateStatus.InvalidQuestion:
    lblResults.Text = "The password question format was invalid.  Please enter a different question.";
    break;
  case MembershipCreateStatus.InvalidAnswer:
    lblResults.Text = "The password answer format was invalid.  Please enter a different answer.";
    break;
  case MembershipCreateStatus.DuplicateUserName:
    lblResults.Text = "The username is already in use.  Please enter a new username.";
    break;
  case MembershipCreateStatus.DuplicateEmail:
    lblResults.Text = "The email address is already in use.  Please enter a different email address.";
    break;
  default:
    lblResults.Text = "An error occurred while creating the user.";
    break;
}

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/761809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档