私は自分のウェブサイト内のナビゲーションにサイトマップを使用しています。ロールベースではなく、個々のユーザーに基づいて特定のページにアクセスルールを含めることができる方法はありますか?各ユーザーは各ページへのアクセス権を持ちます。個々のページのアクセスルールASP.net
私はアクセスルールのセキュリティを調査しました。これは、個々のユーザーが、ページベースではなくフォルダベースであることを意味しています。
各ページパス情報を持つデータベースに新しいテーブルを作成したくありません。
私は自分のウェブサイト内のナビゲーションにサイトマップを使用しています。ロールベースではなく、個々のユーザーに基づいて特定のページにアクセスルールを含めることができる方法はありますか?各ユーザーは各ページへのアクセス権を持ちます。個々のページのアクセスルールASP.net
私はアクセスルールのセキュリティを調査しました。これは、個々のユーザーが、ページベースではなくフォルダベースであることを意味しています。
各ページパス情報を持つデータベースに新しいテーブルを作成したくありません。
の要素をweb.config
に使用すると、ページごとのユーザーを指定できます。
<configuration>
<location path="JohnsPage.aspx">
<system.web>
<authorization>
<allow users="John" />
<deny users="*" />
</authorization>
</system.web>
</location>
</configuration>
これは、ユーザーがログインしたユーザー名に基づいて動作します。統合Windows認証を使用している場合は、次のようにあなたは、web.configファイルでそれをconfugureすることができますあまりにも<allow users="DOMAIN\John" />
のようにドメインを指定する必要があります忘れないでください:
<?xml version="1.0"?>
<configuration>
<location path="AnyUserPage.aspx">
<system.web>
<authorization>
<allow users="AnyUser" />
<deny users="*" />
</authorization>
</system.web>
</location>
</configuration>
'は私のWeb設定ファイルを変更したくありません –
これは一般的な方法です。しかし、あなたはPrincipalPermissionAttributesを次のように使うことができます: 'using System; using System.Security.Permissions; ; [PrincipalPermission(SecurityAction.Demand、User = "SomeUser")] public class EmployeeManager {...} 'トピックの詳細[ここ](http://weblogs.asp.net/scottgu/archive/2006/) 10/04/Tip_2F00_Trick_3A00_-PrincipalPermissionAttributes.aspxを使用した認可ルール/ビジネス/データレイヤーの追加ユーザーが間違っていると、ASP.NETランタイムはグローバル例外ハンドラ (Application_Error)で処理するセキュリティ例外をスローします。 – Kirill
しかし、このアプローチは本当に柔軟性がありません。なぜあなたはPage_Loadでユーザーをチェックしないのですか? Membership: 'string userName = User.Identity.Name;を使用すると、 – Kirill
は私のWebを変更したくありませんconfigファイル –