-2

私はフォーム認証を使用しており、その動作は問題ありません。しかし、user1 のログイン後、user1.aspx ページが表示されますが、ログイン後に URL を変更すると、user2 ページにもアクセスできるため、Web 構成ファイルを変更しましたこのような

<authentication mode="Forms">
      <forms
        name=".LOGIN" 
        cookieless="UseCookies"
        loginUrl="LOGIN.aspx"/>

    </authentication>

    <authorization>
      <deny users="?"/>
    </authorization>
  </system.web>


  <location path="~/CabScheduler/User1/User1.aspx">
    <system.web>
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
  </location>



  <location path="~/CabScheduler/User2/User2.aspx">
    <system.web>
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
  </location>




  <system.webServer>
     <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>

ログインページで--

 protected void btnLogin_Click(object sender, EventArgs e) 
        { 
            bool validLogin = false; 

            validLogin = IsValidUser(txtUserName.Text.Trim(), txtPassword.Text.Trim());
            int UserId = FindRoleId(txtUserName.Text.Trim(), txtPassword.Text.Trim());
            if (validLogin) 

            {       
                FormsAuthentication.RedirectFromLoginPage(txtUserName.Text.Trim(), false); 
                if(UserId ==1)
                    Response.Redirect("~/User1/User1.aspx");
                else
                    Response.Redirect("~/User2/User2.aspx");
        }


            else 

                lblInformation.Text = "Incorrect Login Information"; 
        } 

何が足りないのか、間違っているのか教えてください。どうもありがとうございました!

4

3 に答える 3

0

User1.aspxOnLoadイベントで、現在のユーザーがこのページにアクセスするかどうかを認証され、それに応じて処理することを確認します。

User1.aspx onLoadイベントチェック:

 if(UserId !=1)
  {
    //redirect to login page
  }
于 2012-11-16T10:40:05.680 に答える
0

以下をお試しください

 <location path="~/CabScheduler/User2/User2.aspx">
    <system.web>
      <authorization>
                <allow users="user2" />
                <deny users="*, ?" />
      </authorization>
    </system.web>
  </location>


    <location path="~/CabScheduler/User1/User1.aspx">
        <system.web>
            <authorization>
                <allow users="user1" />
                <deny users="*, ?" />
            </authorization>
        </system.web>
    </location>
于 2012-11-16T10:41:02.270 に答える
0

userId を に保存し、Sessionそれらのページの現在のページに対して ID が有効かどうかを確認します。

Session["userId"] = UserId;

そして、ページ自体で:

if (Session["userId"] != xxx)
    Redirect("somewhere");

適切な値を入力してください。

于 2012-11-16T10:37:20.180 に答える