我的要求是 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会员资格,那么我应该采用其他方法来满足我的要求。谢谢你的帮助。
答案 0 :(得分:1)
您可以在创建用户表单中使用它。它可以添加用户名和密码 通过这段代码
试试吧。如果你有任何疑问写信给我。Membership.CreateUser("Username", "Password");
Roles.AddUserToRole("username", "RoleName");
答案 1 :(得分: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>
</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());
}
}
}
}