我有一个 MVC 3 应用程序,我正在尝试与 Azure 托管的 ACS 身份提供程序集成。我一直在关注教程,但在使用 ASP.NET MVC 时它们似乎对我不起作用。
本质上,当我点击我用用户标记的View[Authorize]
时,会重定向到 Azure 托管的登录页面,其中包含Identity Providers列表。我选择了一个提供商(在本例中为Live)并登录。此时,这一切都按我的预期工作。在我成功进行身份验证后(视觉上)我没有被重定向回我的应用程序,而是返回到身份提供者页面。在 Fiddler 中观看此内容时,它似乎实际上返回,但随后又重新开始循环(HTTP 状态代码 302)。
有人可以解释可能导致这种情况的原因吗?
在 Azure 门户中,我为我的依赖方应用程序配置了以下 URL
- 领域:http://localhost:7777/
- 返回网址:http://localhost:7777/(我也试过http://localhost:7777/Home/About)
- 在所有其他情况下,我都有默认设置
url 匹配 Web.config 中的内容(包括尾部斜杠)
只有一个控制器具有以下功能:
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 都是最新的。