powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как восстановить сессию
25 сообщений из 288, страница 10 из 12
Как восстановить сессию
    #39580873
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stenfordskyANAКлейм нужен, но вот токены, куки и апи уже совсем не обязательно. Это уже конкретные случаи.
А в общем случае они не нужны при claim-based авторизации.
и на чем-же в "общем случае" будет доставлен клейм?А ни на чём: https://metanit.com/sharp/mvc5/12.21.php
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39580878
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонskyANAКлейм нужен, но вот токены, куки и апи уже совсем не обязательно. Это уже конкретные случаи.
А в общем случае они не нужны при claim-based авторизации.
клеим обычно передают в токене, и мы тут про аутентификацию..
skyANAС развитием ASP.NET и механизмы аутентификации развивались.
Ты про аутентификацию, а hVostt и stenford пишут в своих сообщениях слово авторизация :)

А по ссылке выше клейм не передаётся, он сохранён в БД.
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39580887
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамона под капотом ничего нового, но все хотят верить в чудеса ))
Конечно хочу

По памяти распишешь следующий механизм:



Или под капотом у тебя ничего нового пойдёшь гуглить?
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39580888
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА по ссылке выше клейм не передаётся, он сохранён в БД.

Нет.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
    {
        var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
         
        var yearClaim = Claims.FirstOrDefault(c => c.ClaimType == "Year");
        if (yearClaim != null)
            userIdentity.AddClaim(new Claim(yearClaim.ClaimType, yearClaim.ClaimValue));
        return userIdentity;
    }



Он записывается в тикет, который сохраняется в куки.
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39580890
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAКонечно хочу
это новое? ))
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39580892
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAstenfordпропущено...

и на чем-же в "общем случае" будет доставлен клейм?А ни на чём: https://metanit.com/sharp/mvc5/12.21.php
очередной пример поверхностного гугления )
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39580900
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамон,

успокойся, это год собаки, а не тролля
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39580902
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонskyANAпропущено...
А ни на чём: https://metanit.com/sharp/mvc5/12.21.php
очередной пример поверхностного гугления )Ты давай без гугления расскажи что-либо подробнее двух слов: куки и токены
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39580905
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttчто жа там должно быть такого, чтобы Парамон удивился?
вылезти леприкон и нагадить радугой?
hVosttИ опять же, нет, в приведённом мною списке есть механизмы не использующие ни куки, ни токены.
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39580907
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAТы давай без гугления расскажи что-либо подробнее двух слов: куки и токены
там в картинке расписано, не заметил?
и что у нас с клеимами в базе?
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39580920
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонhVosttчто жа там должно быть такого, чтобы Парамон удивился?
вылезти леприкон и нагадить радугой?
hVosttИ опять же, нет, в приведённом мною списке есть механизмы не использующие ни куки, ни токены.

тебе помощь зала требуется?
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39580923
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамони что у нас с клеимами в базе?

клеймы и правда в базе, их можно брать из базы, а не из тикета, за это как-то давно даже МСУ топил не по-детски
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39580924
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонskyANAТы давай без гугления расскажи что-либо подробнее двух слов: куки и токены
там в картинке расписано, не заметил?
и что у нас с клеимами в базе? Ага, то есть сам без гугления не можешь подробности рассказать, не удивил.

А с клеймами в базе всё хорошо. Это же по сути просто атрибуты пользователя.
Тебя когда-то разве смущало-то, что данные о пользователе хранятся в БД? Что-то мешало их достать и проверить?
Но вот их обозвали клеймами и значит обязательно их пихать в куки, все без исключения
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39580927
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttтебе помощь зала требуется?
ага, сейчас пойду гуглить каждое слово ))
озвучивай.
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39580933
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAТебя когда-то разве смущало-то, что данные о пользователе хранятся в БД? Что-то мешало их достать и проверить?
так у вас каждое поле в базе клеймом будет
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39580941
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttклеймы и правда в базе, их можно брать из базы, а не из тикета, за это как-то давно даже МСУ топил не по-детски
лезть в базу на каждый чих, это точно бест практис
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39580957
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонhVosttклеймы и правда в базе, их можно брать из базы, а не из тикета, за это как-то давно даже МСУ топил не по-детски
лезть в базу на каждый чих, это точно бест практис
все лежит в БД
при аутентификации создается клеймо и прижигается в куки, что бы каждый раз не лезть в БД
наверное, что то типа этого реализовано
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39580960
stenford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА ни на чём: https://metanit.com/sharp/mvc5/12.21.php

как ни на чем? Вот прямо из твоей ссылки:

Затем изменим класс ApplicationUser, чтобы он сохранял данные своего claim в куках

Т.е. кука - это ни на чем?
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39580968
stenford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAТебя когда-то разве смущало-то, что данные о пользователе хранятся в БД? Что-то мешало их достать и проверить?
Но вот их обозвали клеймами и значит обязательно их пихать в куки, все без исключения
вместо базы еще можно сессию замутить, даже быстрее чем база будет, верно? Нафига эти клеймы придумали.
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39580971
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosвсе лежит в БД
при аутентификации создается клеймо и прижигается в куки, что бы каждый раз не лезть в БД
наверное, что то типа этого реализовано
в основном так и есть, но скиана и хвост не готовы с этим мириться
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39580983
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stenfordskyANAТебя когда-то разве смущало-то, что данные о пользователе хранятся в БД? Что-то мешало их достать и проверить?
Но вот их обозвали клеймами и значит обязательно их пихать в куки, все без исключения
вместо базы еще можно сессию замутить, даже быстрее чем база будет, верно? Нафига эти клеймы придумали.Можно ещё и Cache, и Redis, и...

А клеймы придумали например для этого:
Using claims for authorization With claims, a user's identity is no longer a monolithic entity.
For example, a user might have an email address, phone number, birthday, gender, etc. Maybe the user's IDP stores all of this information.
But when you authenticate the user, you'll typically get a subset of these as claims. In this model, the user's identity is simply a bundle of claims.
When you make authorization decisions about a user, you will look for particular sets of claims.
In other words, the question "Can user X perform action Y" ultimately becomes "Does user X have claim Z".
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39580992
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

вот тут набор свойств для создания правил отделено от кода
а как происходит авторизация - в коде (в виде аннотации [user.a> b && user.b == ""] или еще как)? или это тоже внешне (типа (if (authorized(method, user))?
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39581011
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosskyANA,

вот тут набор свойств для создания правил отделено от кода
а как происходит авторизация - в коде (в виде аннотации [user.a> b && user.b == ""] или еще как)? или это тоже внешне (типа (if (authorized(method, user))?Можно и if:
Код: c#
1.
if (User.HasClaim(ClaimTypes.Role, "Admin")) { ... }


и атрибут:
Код: c#
1.
2.
3.
4.
5.
[ClaimsAuthorization(ClaimType="a", ClaimValue="b")]
public IHttpActionResult Get()
{
    return Ok();
}


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
public class ClaimsAuthorizationAttribute : AuthorizationFilterAttribute
{
    public string ClaimType { get; set; }
    public string ClaimValue { get; set; }
 
    public override Task OnAuthorizationAsync(HttpActionContext actionContext, System.Threading.CancellationToken cancellationToken)
    {
        var principal = actionContext.RequestContext.Principal as ClaimsPrincipal;
 
        if (principal.Identity.IsAuthenticated &&
            principal.HasClaim(x => x.Type == ClaimType && x.Value == ClaimValue))
        { 
            // User is authorized, complete execution
            return Task.FromResult<object>(null);
        }
 
        actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized);

        return Task.FromResult<object>(null); 
    }
}
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39581021
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

ну норм, в принципе можно просто userHasClame(Namespace.Class.MethodName)
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39581023
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почти как в ВИПРОС уже :)
...
Рейтинг: 0 / 0
25 сообщений из 288, страница 10 из 12
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как восстановить сессию
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]