サイトにユーザー登録を追加したいのですが、ユーザーを管理する管理者を作成する必要があります。ASP.NET の認証を使用しています。でユーザーを作成し、管理パネルにAccount/Register
リストし、
I need help about admin で削除できます。管理者を 1 人作成し、だれも管理者にならず、単純なユーザーのみになるようにするにはどうすればよいですか? また、 のメソッドにおけるユーザーの役割は何ですか?Membership.GetAllUsers()
Membership.DeleteUser( username )
Membership.CreateUser( model.UserName, model.Password, model.Email, null, null, true, null, out createStatus )
Account/Register
質問する
1767 次
1 に答える
1
MVCアカウント管理の場合、 MembershipStarterKitが非常に便利であることがわかりました。非常によくサポートされているロールベースの認証が必要なようです。
参照しているMembership.CreateUser関数は、管理者または役割ベースのセキュリティとは関係がなく、ユーザー自体を作成するためにのみ使用されます。
IIS .NETユーザーツールを使用できますが、それは.NET 2.0を対象としているため、それを機能させるには、その周りにいくつかの構成を行う必要があります。実際のアプリケーションと同じ接続文字列を使用する新しいIISアプリケーションを作成する必要があります。
そのアプリケーションには、次のようなWeb構成が必要です。
<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ほど便利なツールではありません。
于 2012-08-10T11:31:47.373 に答える