【解決方法】Asp.Net ログイン リダイレクト

プログラミングQA


こんにちは、みんな、

ASP.NET 2012 開発フェーズ内の私の Web サイトには 3 つの役割 (管理者、メンバー、組織) があります。適切な Web 構成セキュリティ制限を使用して各フォルダーを実装しました。問題は、LogIn.cs 内のユーザー ロールに基づいてリダイレクトを実装した後です。プロジェクト階層内に存在しないデフォルトページについてスローされ、プロジェクトにデフォルトページが作成されていませんが、ホームページが開始として設定されています。

私が行って状況を改善しようとしたのは、マスター ページから継承する空のデフォルト ページを作成することでした。

提供された支援に非常に感謝しています。事前に感謝します。

これは私の Login.cs

C#
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Login : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        {
            bool isAdministrator = Roles.IsUserInRole(User.Identity.Name, "Administrator");
            bool isMembers= Roles.IsUserInRole(User.Identity.Name, "Members");


            //if User is an admin, send to admin homepage, otherwise to account home page
            if (isAdministrator)
                Response.Redirect("~/Admin/SiteAdmin.aspx");
            else if (isMembers)
                Response.Redirect("~/Members/Dashboard.aspx");
        }
    }

}

解決策 1

ログインページの読み込みイベントで、コードを書きますか? それは正しいです ? ログインページの読み込みでも取得できます

C#
bool isAdministrator = Roles.IsUserInRole(User.Identity.Name, "Administrator");
bool isMembers= Roles.IsUserInRole(User.Identity.Name, "Members");

またはボタンをクリックして取得しますか?

このようにして、 if フォームの else 部分を削除します。つまり、 if と else 、

C#
if (isAdministrator)
Response.Redirect("~/Admin/SiteAdmin.aspx");
else (isMembers)
Response.Redirect("~/Members/Dashboard.aspx");

または、このように試して、ボタンを1つ入れて、そのボタンをクリックしても、そのコードを書いて確認してください。

また

ログインページの読み込みイベントで、このコードのみを記述して確認します

Response.Redirect(“~/Admin/SiteAdmin.aspx”);

コメント

タイトルとURLをコピーしました