Azure でホストされている ACS ID プロバイダーと統合しようとしている MVC 3 アプリケーションがあります。チュートリアルに従っていますが、ASP.NET MVC を使用している場合、チュートリアルが機能していないようです。
基本的に、ユーザーにフラグを付けたビューをヒットすると、 ID プロバイダー[Authorize]
のリストを含む Azure でホストされているログイン ページにリダイレクトされます。プロバイダー (この場合はLive ) を選択してログインします。この時点で、これはすべて期待どおりに機能します。認証に成功すると、(視覚的に)アプリケーションにリダイレクトされず、代わりに ID プロバイダー ページに戻ります。これを Fiddler で見ると、実際には返されるように見えますが、その後、サイクルが最初からやり直されます ( HTTP ステータス コード 302 )。
誰かがこれを引き起こしている原因を説明できますか?
Azure portal 内で、証明書利用者アプリケーション用に構成された次の URL があります。
- レルム: http: //localhost:7777/
- Return Url : http: //localhost:7777/ ( http: //localhost:7777/Home/About も試しました)
- 他のすべてのケースでは、デフォルト設定を使用しています
URL は Web.config の内容と一致します (末尾のスラッシュを含む)
次のコントローラは 1 つだけです。
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[Authorize]
public ActionResult About()
{
Response.Write("Claims Received from ACS:");
ClaimsIdentity ci = Thread.CurrentPrincipal.Identity as ClaimsIdentity; foreach (Claim c in ci.Claims)
{
Response.Write("Type: " + c.ClaimType + "- Value: " + c.Value + "");
}
return View();
}
}
注:これは、この統合を通じて動作するように作成された新しいプロジェクトです。すべてのパッケージと関連する SDK はすべて最新です。