ASP.NET 4.0 と C# は初めてです。web.sitemap を使用してログインしたユーザーに基づいてメニュー項目を表示/非表示にしたい場合は、ロールを使用して web.config に設定する必要があります。私はその役割を得ることができますか?
4 に答える
if (User.IsInRole("rolename")) {
// what you wan't to do.
}
ASP.NETを初めて使用する場合は、ユーザーと役割について学ぶ必要があります。「ログイン」などの標準要素でMembershipAPIを使用してみてください。その後、カスタムデータ構造を使用して独自のユーザーとロールプロバイダーを作成する必要があります。次に、@RandolfRFステートメントを使用します。
ロールを保存するには、IPrincipalを使用する必要があります。
GenericIdentity userIdentity = new GenericIdentity((FormsIdentity)HttpContext.Current.User.Identity.Name);
string[] roles = { "rolename1", "rolename2", "rolename3" };
GenericPrincipal userPrincipal = new GenericPrincipal(userIdentity, roles);
Context.User = userPrincipal;
次に、ユーザーの役割を確認できます
if (User.IsInRole("rolename1")) {
// what you wan't to do.
}
私の理解が正しければ、asp.net Web アプリケーション プロジェクトを開いていて、ユーザーを作成してロールを割り当てる方法を知りたいとおっしゃっています。
現在、rolemanager とメンバーシップ プロバイダーの既定のプロバイダーを使用するように web.config を構成している場合、asp.net はすべてのトリッキーな処理を処理します。あなたがしなければならない唯一のことは、メニューバーに行き、「Project -> ASP.NET Configuration」を選択することです。これにより、ユーザーとロールを作成して割り当てるための GUI が表示されます。それはかなり自明なツールでなければなりません。これは、web.config の使用要件も満たしている必要があります。
ここから上で提案したように、ユーザーがログインしている場合は、次のようなことができます。
if (User.IsInRole("rolename")) { // やりたくないこと。}
別の方法として (そしてあなたにとって最良の方法です)、ツールボックスで logInView コントロールを使用してみてください (そう呼ばれていると思います)。