Определение владельца, к которому принадлежит пользователь в ASP.NET

1

Я создал приложение веб-формы ASP.NET с механизмом аутентификации, установленным на "Организационные учетные записи" с выбранным вариантом "Облачные - множественные организации".

Запустив сайт по умолчанию, я затем "зарегистрировал" две совершенно несвязанные учетные записи Windows Azure AD.

И я вижу две записи в таблице "Арендаторы" по умолчанию.

Так далеко. Так хорошо.

Однако я не могу понять, как определить, к какому арендатору относится любой из моих подписанных пользователей.

Как мне сопоставить: Context.User.Identity.Name

Для индивидуального идентификатора арендатора, чтобы я мог разделить данные?

Теги:
azure

1 ответ

3
Лучший ответ

Вы просто получаете TenantId (http://schemas.microsoft.com/identity/claims/tenantid) или Требование IdentityProvider (http://schemas.microsoft.com/identity/claims/identityprovider). Это претензии, которые однозначно идентифицируют Арендатора вашего пользователя. И рассмотрение претензий никогда не было проще (с.NET 4.0). Вот образец образца бритвы MVC:

@foreach (var claim in ((System.Security.Claims.ClaimsIdentity)User.Identity).Claims)
{
    <p><b>@claim.Type:</b> @claim.Value</p>
}

Чтобы облегчить это, вы можете создать метод расширения:

public static class ClaimsIdentityExtensions
{
    public static string GetTenantId(this ClaimsIdentity identity)
    {
        var claim = identity.Claims.FirstOrDefault(c => c.Type.Equals("http://schemas.microsoft.com/identity/claims/identityprovider"));
        return (claim != null) ? claim.Value : "unknown";
    }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню