0

私は、EF を使用したメンバーシップが実装されている MVC3 アプリケーションに取り組んでいます。ここでは、[Authorize] 属性を持つ各コントローラーのすべてのアクション メソッドにメンバーシップが適用されます。ただし、JsonResult メソッドには適用されません。ここでは Actionresult メソッドはページを表示するために使用され、jsonresult メソッドは非同期呼び出しを行うことによる検証に使用されます。

たとえば。ビューページにはドロップダウンがあり、そのオプションを変更すると、非同期呼び出しによって検証されます。したがって、セッションの有効期限が切れたとき。ユーザーがドロップダウンからオプションを変更し、403 のようなコードを返すことができなかった $.ajax メソッドによって非同期呼び出しが行われたため、このコードを取得する方法が必要です。

4

1 に答える 1

0

私があなたの質問を正しく理解していれば、あなたは:

  • コントローラーのほとんどのメソッドを保護します[Authorize]
  • 保護されていない検証に使用する JsonResult メソッドがあり、
  • ユーザーのセッションが期限切れになった場合に Json メソッドから 403 を返したいですか?

[Authorize]Jsonメソッドだけではない理由が理解できないと思いますが、これを行うことができます:

if (!User.Identity.IsAuthenticated)
    return new HttpStatusCodeResult(System.Net.HttpStatusCode.Forbidden);

乾杯。

于 2013-01-18T15:58:03.843 に答える