-1

機密情報 (クレジット カード番号など) へのリンクを含む Web コントロール パネルがあります。ユーザーが (以前にログインしたことがある) これらのリンクのいずれかをクリックすると、資格情報を確認する必要があります。

彼が資格情報を入力したことを要求 ("/sensitive-informations.aspx") したときに、サーバー側で確認するにはどうすればよいですか?

編集:ここでの主な問題は、「彼は資格情報を入力したところです」です。ログインページから直接アクセスするようにする必要があります。

4

2 に答える 2

1

これを行うにはいくつかの方法があります。たとえば、ユーザーが資格情報を入力したら、それをSession オブジェクトに保存します。

次に、Page_Load機密情報の.aspx で、Session オブジェクトが存在することを確認します。

これをよりよく説明するには、次のようにします。

login.aspx.cs ページで:

protected btnLoginClick(...)
{
   // CHECK USERNAME and PASSWORD
   if (UserIsAuthenticated)
   {
      Session["UserName"] = user;
   }
}

次に、機密情報.aspx.cs

protected page_load(...)
{
    // If UserName doesn't exist in Session, don't allow access to page
    if (Session["UserName"] == null)
    {
       Response.Redirect("INVALID_USER.aspx");
    }

}

編集:

OP のコメントに基づいて、どのページから来たのか知りたい場合は、次のいずれかを使用 できます。

    protected void Page_Load(object sender, EventArgs e)
    {
        var x = this.Page.PreviousPage;

または、次のようにRequest.UrlReferrerを使用します。

    protected void Page_Load(object sender, EventArgs e)
    {
        var x = Request.UrlReferrer;

どちらの場合も、x最初に null でないことを確認してください...

于 2013-02-19T08:57:44.683 に答える
0

UrlReferrer次のPage_Load場合に確認できますsensitive-informations.aspx

if (Request.UrlReferrer != null)
{
     if (Request.UrlReferrer.AbsolutePath.ToLower().Contains("you-login-page"))
     {
        //User came from the login page
     }
}

UPDATE コメントに基づいて、 MembershipUserクラスLastLoginDateのプロパティを確認する必要があります

これにより、現在のユーザーの最終ログイン日がわかります。それを現在の日付/時刻と比較して、ユーザーが「資格情報を入力したばかり」であることを確認できます。これを、ユーザーの出身地の確認と組み合わせます (Request.UrlReferrerまたはを使用Page.PreviousPage)。

于 2013-02-19T10:10:22.517 に答える