0

我想问一些关于.NET 成员资格的问题。当我尝试使用会员资格时,我遇到了一些问题。我遵循了微软网站给出的规则。刚刚在Web.config中做了一些设置如下

<membership>
   <providers>
      <clear/>
      <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider"
        connectionStringName="MyConnectionString" minRequiredNonalphanumericCharacters="3"
        requiresUniqueEmail="false" maxInvalidPasswordAttempts="3"  requiresQuestionAndAnswer="false"
        enablePasswordRetrieval="false"
        enablePasswordReset="true"
        minRequiredPasswordLength="7"   applicationName="/"/>
      </providers>
    </membership>

然后我使用CreateUser了会员制。调用该方法的所有参数都很好,但有时它返回状态为InvalidPassword. 我不知道为什么它会返回状态,但有时它会成功创建用户。有人可以解释一下我哪里错了吗?这是我正在使用的功能:

     MembershipUser newUser = Membership.CreateUser(ObjModel.FirstName, ObjModel.password,      ObjModel.Email, null, null, true, out status);
            //ObjModel.FirstName + ObjModel.LastName, ObjModel.LastName, ObjModel.password,ObjModel.Email ,null, null, true, out status);
            Message = status.ToString();
            if (status == MembershipCreateStatus.Success)
            {
                MembershipUserId = new Guid(Membership.GetUser(ObjModel.FirstName).ProviderUserKey.ToString());
                Roles.AddUserToRole(ObjModel.FirstName + ObjModel.LastName, "Client");
            } 

最后还有一个问题:收到成功消息后,我想将此用户添加到角色,角色将是客户端。我应该如何使用它?我没有创建角色。什么时候应该创建角色?我们可以独立于其他表创建角色吗?如果我必须再创建一个会员用户,但它的角色应该是管理员等等?实际上,创建用户、创建角色和以编程方式添加用户角色的正确流程应该是什么?sql成员表中的应用程序ID是什么?请清除我所有的疑虑。我已经搜索并尝试了谷歌搜索,但仍有一些问题没有得到清除。请尽快帮助。

4

2 回答 2

0

您的无效密码错误很可能是由于密码不符合最低密码复杂度而引起的。当您在 Web 配置中声明成员资格提供程序时,尝试设置 minRequiredNonalphanumericCharacters 属性。(将其设置为 0 以降低复杂性)。可能有更多设置,但我想不出任何设置。

要管理您的角色,请使用 AspNetSqlRoleProvider:在您的 Web 配置中声明它,<system.web>如下所示:

<roleManager enabled="true"> <providers> <clear /> <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="DBCon" applicationName="/" /> </providers> </roleManager>

抱歉 - 无论我做什么,上面的内容都会失去它的 lf。

然后只需使用 Roles.CreateRole、Roles.DeleteRole()、Roles.AddUserToRole、Roles.RemoveUserFromRole 更新您的角色。

通常首先创建你的角色 - 但我猜这并不重要。

applciation id 与听起来一模一样 - 在此数据库中为您的应用程序提供唯一参考 - 您可以针对您的数据库运行多个应用程序。

希望这可以帮助 -

马克

于 2013-08-24T16:28:56.940 回答
0

1)无效密码错误状态/错误仅在您输入的密码不符合上述答案中解释的 web.config 文件中给出的要求时出现。您必须检查输入的密码应包含至少 3 个非字母数字字符,如(@ , %, #) 和 all in combine 密码应包含 7 位数字/数字/字母或其他。

2)以及您要问的流程。根据我的说法,它应该像这样工作。首先调用 CreateUsermethod 并在它返回 status=success 之后添加该用户一个角色。角色应该已经创建,我认为是的,它独立于其他成员表。

3)同样,您只需要使用 AddUserTorole 成员资格方法并将 Rolename 作为其参数之一加上 User name 作为第一个参数即可向用户添加角色。

最后但并非最不重要的一点是,如果我在某处错了,Stack Over flow 可以纠正我,因为我根据我的知识做出回应并从互联网上搜索

于 2013-08-27T14:26:29.013 回答