【问题标题】:Query regarding Asp.net membership关于 Asp.net 会员资格的查询
【发布时间】:2013-02-13 01:00:48
【问题描述】:

我的要求是 1)创建一个角色并将用户添加到该特定角色。 2)我有一个目录管理员,其中包含一个 aspx 页面,只能由管理员访问 3)所以如果他尝试将任何 aspx 页面访问到文件夹中,我想将用户重定向到登录页面。

实现这个

我已经使用 Asp.net 成员资格来创建用户和角色以及各种功能 制作登录表单。 问题是每次我需要打开 asp.net 配置以创建新用户并将该用户分配给特定角色时。 如果我在实时站点上部署我的网站。那么我现在如何添加用户。

我正在列出我的网络配置文件

<configuration>
  <connectionStrings>
    <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=true;Initial Catalog=Web24;" providerName="System.Data.SqlClient"/>
  </connectionStrings>
  <system.web>
    <compilation debug="true" targetFramework="4.0"/>
    <authentication mode="Forms">
      <forms loginUrl="~/WebForm1.aspx" timeout="2880"/>
    </authentication>
    <membership>
      <providers>
        <clear/>
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/"/>
      </providers>
    </membership>
    <profile>
      <providers>
        <clear/>
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
      </providers>
    </profile>
    <roleManager enabled="true">
      <providers>
        <clear/>
        <add connectionStringName="ApplicationServices" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider"/>
        <add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider"/>
      </providers>
    </roleManager>

  </system.web>
  <location path="Admin">
    <system.web>
    <authorization>
      <deny users="?" />
      <!--Deny all Anonymous (not logged in) users-->
      <allow roles="Admin"/>
      <!--Permit users in these roles-->
      <deny users="*"/>
      <!--Deny all users-->
    </authorization>
    </system.web>
  </location>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>

如果 Asp.net 会员资格无法实现,那么我应该遵循什么其他方法来满足我的要求。感谢您的帮助。

【问题讨论】:

  • 这很有可能 - 您只需要在管理区域中编写一个 UI 来创建用户,在代码中使用 Membership Provider(而不是使用实用程序)。

标签: asp.net web-config asp.net-membership role


【解决方案1】:

您可以为管理员创建一个页面,他可以在其中添加用户,例如

aspx

 <tr>
        <td>
            Username:</td>
        <td>
            <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
        </td>
    </tr>
    <tr>
        <td>
            Password:</td>
        <td>
            <asp:TextBox ID="txtUserPass" runat="server" TextMode="Password"></asp:TextBox>
        </td>
    </tr>

  <tr>
        <td valign=top>
            Roles:</td>
        <td>
            <asp:CheckBoxList ID="cblRoles" runat="server">
                <asp:ListItem>Admin</asp:ListItem>
                <asp:ListItem>Role 1</asp:ListItem>
                <asp:ListItem>Role 2</asp:ListItem>
            </asp:CheckBoxList></td>
    </tr>
    <tr>
        <td>
            &nbsp;</td>
        <td>
            <asp:Button ID="btnSave" runat="server" Text="Save" onclick="btnSave_Click" />
        </td>
    </tr>

aspx.cs

 protected void btnSave_Click(object sender, EventArgs e)
    {
        MembershipCreateStatus createStatus;
        MembershipUser newUser = Membership.CreateUser(txtUserName.Text, txtUserPass.Text, null, null, null, true, out createStatus);

        if (newUser != null)
        {
          foreach (ListItem li in cblRoles.Items)
            {
                if (li.Selected)
                {
                    Roles.AddUserToRole(txtUserName.Text, li.Value.ToString());
                }
            }
         }
    }

【讨论】:

    【解决方案2】:

    您可以在创建用户表单中使用它。可以添加用户名和密码 通过这段代码

    试试看。如果您有任何疑问,请写信给我。

    Membership.CreateUser("Username", "Password");
                Roles.AddUserToRole("username", "RoleName");
    

    【讨论】:

      猜你喜欢
      • 2010-11-13
      • 2013-05-17
      • 2012-02-09
      • 1970-01-01
      • 1970-01-01
      • 2012-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多