0

ASP.NET MVC Web サイトを持っています。

私は実際にはユーザーを管理していませんが、外部 API にログインしてから"ASPXFORMSAUTH"Cookie を保存しています。

これは WCF サービスです。私のコントローラーでは、次のように呼び出します。

MyWcfServiceClient.Login()

AfterReceiveReply では、サービスの応答を変数に格納します。

cookie = httpResponse.Headers[HttpResponseHeader.SetCookie];

次に、コントローラーでこの Cookie を取得し、以下を使用して保存します。

Response.Cookies.Add(cookie);

私は ASP.NET MVC の初心者ですが[Authorize]、リクエストにこの Cookie が含まれている場合にのみ、属性を使用してコントローラー メソッドへのアクセスを許可できますか? そして[AllowAnonymous]、API ログイン前のメソッドについて。

編集 :

[Authorize]属性を追加するだけで機能するはずですか?

私は ajax を使用してコントローラー メソッドを呼び出しており、の値Request.Headers["Cookie"].ASPXAUTH=1D415AF723......

しかし、私は ajax エラー コールバックを受け取ります...

何か不足していますか?

4

2 に答える 2

0

これまでに試したことがないので、完全にはわかりません。ただし、正しい Cookie (デフォルトの aspx 認証 Cookie) を設定すると、AuthorizeAttribute によって、承認されていない場合にコントローラーにアクセスできなくなります。コントローラーで authorize 属性を使用して、外部 API を使用してログインしようとしましたか? 箱から出してすぐに動作する可能性があるためです。

もう 1 つのオプションは、独自の属性を作成してデフォルト属性を拡張することです。これについて詳しくは、以下の記事を参照してください。

于 2014-08-13T08:32:18.820 に答える