【问题标题】:.NET Membership - questions.NET 成员资格 - 问题
【发布时间】:2013-08-24 16:03:44
【问题描述】:

我想问一些关于 .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是什么?请清除我所有的疑虑。我已经搜索并尝试了谷歌搜索,但仍有一些问题没有得到清除。请尽快提供帮助。

【问题讨论】:

    标签: .net asp.net-mvc asp.net-mvc-3 c#-4.0 coding-style


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      要管理您的角色,请使用 AspNetSqlRoleProvider:在您的 Web 配置中 &lt;system.web&gt; 下声明它,例如:

      <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 与听起来一模一样 - 此数据库中您的应用程序的唯一引用 - 您可以针对您的数据库运行多个应用程序。

      希望这会有所帮助 -

      马克

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-08-16
        • 2012-01-08
        • 2011-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多