0

response.redirectが機能していません。Visual Studios .netを使用していますが、フォルダーがなくても機能しますが、役割とアクセス許可を実行しているため、そのためにフォルダーを作成する必要があります。URLが機能しないのはなぜですか?ディレクトリにいる間はページを表示できません。

  protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
    {

        if (Membership.ValidateUser(Login1.UserName, Login1.Password) == true)
        {
            Login1.Visible = true;
            Session["user"] = User.Identity.Name;
            FormsAuthentication.RedirectFromLoginPage(Login1.UserName, true);
           // Response.Redirect("");
            if (Roles.IsUserInRole(Login1.UserName, "CEO"))
            {
                Response.Redirect("~/CEOPages/CEO.aspx");
            }
            else if (Roles.IsUserInRole(Login1.UserName, "IALO"))
            {
                Response.Redirect("~/IALOPages/IALO.aspx");
            }
            else if (Roles.IsUserInRole(Login1.UserName, "Staff"))
            {
                Response.Redirect("~/Staff Pages/Staff.aspx");
            }

        }
        else
        {
            Response.Write("Invalid Login");
        }
    }

これはフォルダ設定ファイルです

 <configuration>
     <system.web>
         <authorization>
              <deny users="*" />
              <allow roles="CEO" />
              <deny roles="Staff" />
              <deny roles="IALO" />
          </authorization>
      </system.web>
  </configuration>

フォルダ内のページにアクセスしようとするとエラーが発生します。それらをフォルダから削除し、フォーム認証を使用して、それらのページのクレデンシャルに基づいてアクセスを拒否しました。ページがディレクトリにあるかどうかをどのように表示しますか。

4

2 に答える 2

1

web.configで各フォルダーを指定する必要があります。

  <location path="IALOPages">
    <system.web>
      <authorization>
          <deny users="*" />
          <allow roles="CEO" />
      </authorization>
    </system.web>
  </location>

これで問題が解決するはずです。

于 2012-10-15T18:54:52.703 に答える
0

次のように、許可エントリは拒否エントリの前に置く必要があります。

<configuration>
     <system.web>
         <authorization>
              <allow roles="CEO" />
              <deny roles="Staff" />
              <deny roles="IALO" />
              <deny users="*" />
          </authorization>
      </system.web>
</configuration>

MSDN から: 「実行時に、認証モジュールは、特定のユーザー アカウントに適合する最初のアクセス ルールを見つけるまで、最もローカルな構成ファイルから始めて、許可要素と拒否要素を反復処理します。次に、認証モジュールは許可または拒否します。最初に見つかったアクセス ルールが許可ルールであるか拒否ルールであるかに応じて、URL リソースへのアクセスを拒否します。」

http://msdn.microsoft.com/en-us/library/8d82143t%28v=vs.80%29.aspx

于 2012-10-16T19:22:36.410 に答える