役割ベースの承認を宣言的な方法で使用しようとしています。許可されていないユーザーがページにアクセスしようとすると、例外が発生したり、ユーザーにエラー メッセージが表示されたりすることはありません。許可されていないメッセージを表示するにはどうすればよいですか? それは宣言的な方法で可能ですか?
コーディングを使用することは良いオプションではありません。私にはいくつかの役割があり、フォルダーは複数の役割に対して承認されていますが、他のフォルダーは 1 つの役割に対して承認されています。
ありがとう
役割ベースの承認を宣言的な方法で使用しようとしています。許可されていないユーザーがページにアクセスしようとすると、例外が発生したり、ユーザーにエラー メッセージが表示されたりすることはありません。許可されていないメッセージを表示するにはどうすればよいですか? それは宣言的な方法で可能ですか?
コーディングを使用することは良いオプションではありません。私にはいくつかの役割があり、フォルダーは複数の役割に対して承認されていますが、他のフォルダーは 1 つの役割に対して承認されています。
ありがとう
ログイン ページで次のコードを使用して、ユーザーを無許可のページまたはデフォルト ページにリダイレクトします。
protected void Page_Load( object sender, EventArgs e )
{
if( Page.IsPostBack )
return;
if( !Request.IsAuthenticated )
return;
if( !string.IsNullOrEmpty( Request.QueryString["ReturnUrl"] ) && !UrlAuthorizationModule.CheckUrlAccessForPrincipal(Request.QueryString["ReturnUrl"], User,"GET"))
{
// In Forms Authentication, authenticated but unauthorized requests are converted into a Redirect to the Login page.
// Redirect these to an error page instead.
Response.Redirect( "~/UnauthorizedAccess.aspx", false );
}
else
{
Response.Redirect( FormsAuthentication.DefaultUrl, false );
}
}
何が起こっているかの写真と詳細については、次のリンクを参照してください。
http://www.asp.net/security/tutorials/user-based-authorization-cs
認証に失敗すると、例外がスローされます。それは通過する必要があります。認証には何を使用していますか?匿名アクセスを無効にしましたか?
おそらく、サイトマップを利用することができます。それらの詳細についてはこちらを参照してください。さらに、セキュリティをここで結び付ける方法についても少し説明します。
web.config を使用して、さまざまなフォルダーやファイルのアクセス許可を設定することもできます。各フォルダーには、次のように許可または拒否のリストを含めることができます。
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow roles="Administrators" />
<allow roles="Random Role" />
<deny users="*" />
<deny users="?" />
</authorization>
</system.web>
</configuration>
次に、誰かがアクセス許可を持っていない承認が必要なページにアクセスすると、ログイン ページにリダイレクトされます。次に、それらのページのクエリ文字列を確認し、場合によってはケース固有の応答を設定するか、少なくとも returnURL ページが含まれている場合は、「このページを表示する権限がありません」と言うことができます。