0

私のWebアプリケーションでは、コントローラー全体ではなく、コントローラーの特定のアクションメソッドに承認を追加したいと思います。以下を追加しました

  [Authorize]
  public ActionResult ManageResturant(long Id = 0)
  {
  }

そしてweb.configに追加しました

<authentication mode="Forms" >
  <forms loginUrl="~/Auth/LogIn"/>
</authentication>

しかし、そのアクションメソッドに移動すると、ページが正常に読み込まれますが、これは間違っています。ページをログインページにリダイレクトする必要があります。

助言がありますか?

4

2 に答える 2

1

ジョンのコメントに感謝します。問題が私のコードにあったというヒントの後で、私は本当に解決策を見つけました。

私は、FormsAuthenticationを使用してログインしたユーザーを保存するセッションを使用して、すべてのユーザーがログインしていることを確認し、ログインリンクを表示させます。

問題は、セッションが期限切れになったときに、FormsAuthenticationがユーザーをログインユーザーとして検証しているため、ユーザーはログアウトしているように見えますが、実際にはフォーム認証を使用してログインしていることでした。

だから私がOnActionExecutingメソッドをしたこと私はそのnullがユーザーのためにログアウトするかどうかセッションをチェックするので、この場合私はユーザーがログアウトしていることを確認します

于 2012-06-13T12:22:54.137 に答える
0

設定は問題ないようですが、このアクションを呼び出していることを本当に確認しますか?[Authorize]アノテーションのないManageResturantという名前の別のアクションがありませんか?

于 2012-06-13T11:59:13.800 に答える