如何在mvc3中创建管理员用户?

时间:2012-08-10 11:20:06

标签: asp.net-mvc-3 security authentication asp.net-membership

我想在我的网站上添加用户注册,我需要创建管理用户的管理员。我正在使用ASP.NET的身份验证。我可以使用Account/Register创建用户,在我的管理面板上将其列为Membership.GetAllUsers(),然后使用Membership.DeleteUser( username )删除 我需要有关管理员的帮助。如何创建1个管理员并确保没有人可以成为管理员,只是简单的用户? 用户在Membership.CreateUser( model.UserName, model.Password, model.Email, null, null, true, null, out createStatus )的{​​{1}}方法中的作用是什么?

1 个答案:

答案 0 :(得分:1)

对于MVC帐户管理,我发现MembershipStarterKit非常有用。听起来你想要基于角色的身份验证,它支持得非常好。

您所指的Membership.CreateUser函数与基于管理或基于角色的安全性无关,仅用于创建用户本身。

您可以使用IIS .NET Users工具,但因为它针对的是.NET 2.0,您需要对其进行一些配置才能使其正常工作。您需要创建一个新的IIS应用程序,该应用程序使用与实际应用程序相同的连接字符串。

该应用程序需要一个类似于

的webconfig
<configuration>
  <connectionStrings>
    <add name="MyConnectionString" connectionString="same as my production application membership connection string" providerName="same as my production application provider" />
  </connectionStrings>
  <system.web>
    <authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" timeout="2880" />
    </authentication>
    <membership>
      <providers>
        <remove name="AspNetSqlMembershipProvider" />
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, EnablePasswordReset=true" connectionStringName="MyConnectionString" applicationName="/" />
      </providers>
    </membership>
    <roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">
      <providers>
        <clear/>
        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="MyConnectionString" applicationName="/" />
      </providers>
    </roleManager>
  </system.web>
</configuration>

使用此webconfig结构添加应用程序时,需要确保使用使用.NET v 2.0集成管道的应用程序池(DefaultAppPool应该可用)。

完成此操作后,您可以在此迷你应用程序中访问.Net用户功能,您可以在其中添加和编辑用户和角色。但是,这不像MembershipStarterKit那样有用。