Программно получить идентификатор пользователя из Azure ACS

Этот вопрос немного неопрятен, но я не могу найти информацию в Интернете (возможно, я ищу неправильно?)

У нас настроен Azure ACS, и мы используем его в качестве службы авторизации для нашего веб-сайта. Но теперь нам нужно создать приложение, которое по известному имени пользователя и паролю будет получать заявки пользователей от ACS. Это возможно?

1 ответ

Да, это возможно.

Стоит отметить одну вещь - используя ACS, вы можете выбрать множество различных провайдеров токенов, которые могут быть разрешены (так называемые STS-ы). Каждый из них по умолчанию предоставляет вам различные требования, поэтому вам, возможно, придется их обогатить.

Вот фрагмент кода, который вы можете попытаться увидеть, какие утверждения возвращаются из ACS в вашем коде:

// NOTE: This code makes the assumption that you have .NET 4.5 on the machine.  It relies on 
// the new System.Security.Claims.ClaimsPrincipal and System.Security.Claims.ClaimsIdentity
// classes.

// Cast the Thread.CurrentPrincipal and Identity
System.Security.Claims.ClaimsPrincipal icp = Thread.CurrentPrincipal as System.Security.Claims.ClaimsPrincipal;
System.Security.Claims.ClaimsIdentity claimsIdentity = icp.Identity as System.Security.Claims.ClaimsIdentity;

// Access claims
foreach (System.Security.Claims.Claim claim in claimsIdentity.Claims)
{
    Response.Write("Type : " + claim.Type + "- Value: " + claim.Value + "<br/>");
}

Адам Хоффман Блог Windows Azure - http://stratospher.es/ Twitter - http://twitter.com/stratospher_es

Другие вопросы по тегам