У меня есть приложение MVC 3, которое я пытаюсь интегрировать с поставщиками удостоверений ACS, размещенными в Azure. Я следил за учебниками, но они, похоже, не работают для меня при использовании ASP.NET MVC.
По сути, когда я нажимаю Представление, которое я пометил [Authorize]
, пользователь перенаправляется на страницу входа, размещенную в Azure, со списком поставщиков удостоверений. Я выбираю провайдера (в данном случае Live) и вхожу в систему. На данный момент все работает так, как я и ожидал. После успешной аутентификации появляется (визуально), что меня не перенаправляют обратно в приложение, вместо этого я возвращаюсь на страницу поставщиков удостоверений. При просмотре этого в Fiddler кажется, что он действительно возвращается, но затем начинает цикл заново (Код состояния HTTP 302).
Может кто-нибудь объяснить, что может быть причиной этого?
На портале Azure у меня есть следующие URL-адреса, настроенные для моего приложения проверяющей стороны.
- Область: http://localhost:7777/
- URL возврата: 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 обновлены.