1

私の質問は、この ASP.Net Roles: Page-Level Security Questionとほぼ同じ ですが、asp.net メンバーシップを使用していないという事実を除いて、私が行ったことは、ロールを作成し、ページをロールに割り当てたことです。メニューもユーザーの役割に従って入力します。を入力するだけでユーザーがページにアクセスできるように制限したいのですがPageName.aspx、1 つの解決策はすべてのページの読み込みをチェックすることかもしれませんが、効率的ではないと思います。私はグーグルで検索しましたが<location path="Logon.aspx">、制限に追加するための解決策しか見つかりませんでした. のすべてのページにこれを追加する必要がweb.configあります.そのクラスから、いくつかあると思いますglobal.asaxこれを達成する方法はありますが、わかりません。これを達成するための最良のアプローチを提案してください!

PS: 私はASP.NET メンバーシップを使用していません

4

2 に答える 2

1

レジェンドインメイキング、

これは、プロジェクトのレイアウトによって異なります。1つの解決策は、 webconfigを配置するフォルダー構造を作成し、そこにユーザーにアクセス許可を与えることです。これは1つの解決策であり、他の解決策である可能性があります。

于 2013-01-25T05:16:44.203 に答える
1

Page_Load最後に、私がしたことは、確認するメソッド名IsPageAssignedToRole()を使用して、 MasterPage のすべてのユーザーのページへのアクセスを確認したことです

        string requestedPage = Request.Url.Segments[Request.Url.Segments.Length-1];
        if (requestedPage != "UnAuthorized.aspx")
        {
        AdminUserAuthInfo au = (AdminUserAuthInfo)Context.Items["AdminUserAuthInfo"];
        int current_role= int.Parse(au.Roles[0].ToString());
        if (!AdminRole.IsPageAssignedToRole(current_role, requestedPage))
        { Response.Redirect("UnAuthorized.aspx",true); }
        }
于 2013-01-25T12:13:44.787 に答える