powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Аутентификация шаг за шагом
52 сообщений из 52, показаны все 3 страниц
Аутентификация шаг за шагом
    #38613142
Мембершип
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, как правильно организовать аутентификацию на формах?

Без использования Вижуал Студио.

Какие шаги нужно сделать? И в коде.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38613147
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38613148
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поторопился, в вопросе не было про MVC )
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38613203
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мембершип,

в топку формы и мембершип!
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38613243
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Просвети, поиз, по новым трендам, мне сейчас как раз авторизацию делать, а во всех моих учебниках - мембершип.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38613552
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProПросвети, поиз, по новым трендам, мне сейчас как раз авторизацию делать, а во всех моих учебниках - мембершип.

ASP.NET Identity Overview

примеры кода можно получить так:

1. Создать проект MVC 5
2. Обновить все пакеты Update-Package
3. Перезапустить проект (закрыть студию и открыть заново)
4. Установить пакет Microsoft.AspNet.Identity.Samples вот так:
Код: c#
1.
    Install-Package Microsoft.AspNet.Identity.Samples -Version 2.0.0-beta2 –Pre



изучайте.

самое примечательное, что Microsoft AspNet Identity не зависит от IIS и от тонны ASP.NET кода, отлично взаимодействует с OWIN и WebAPI. напрямую работает с EF (да вообще с чем угодно), в отличие от устаревших техник, которые работают с базой данных только напрямую.

и не слушайте тех, кто говорит что SimpleMembership вещь годная. вовсе нет, это уродец. всё дело в банальной привычке и нежелании что-то там изучать.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38613566
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
благодарю - поизучаю
как понимаю, в MVC 4 это не работает, надо проапгрейдить проект
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38613616
Мембершип
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А для старичков , сидящих на вебформах 2.0 есть какой-нибудь годный туториал?

Просто все что я находил в сети ориентировано на создание инфраструктуры мембершипа из студии, а как без этого тула быть, как руками?
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38687189
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Вот только сейчас добрался, поставил пример и офигел, увидев этот многоэтажный огород. Нет, ну я конечно, за неделю могу досконально разобраться, как это все работает и взаимодействует друг с другом. Только вот нафиг мне не требуется вся эта система управления пользователями, ролями, их EF структура управления хранением пользователей/ролей, вся эта двухступенчатая регистрация, счетчики неправильного ввода паролей и страницы блокированных пользователей и чего там еще есть.

У меня пользователи сами не регистрируются, их создает админ. Система наборов прав и совокупностей прав как ролей - тоже своя, хранение и управление пользователями - тоже, проверку логина/пароля я могу обеспечить своей реализацией.

То есть, по большому счету мне нужно от системы аутентификации очень немного, то есть:
1) Обеспечение входа-выхода пользователя с точки зрения его браузера/текущей сессии (как в пределах сессии, так и с функцией "запомнить меня" между сессиями)
2) Знание в контексте контроллера текущего пользователя (либо ID, либо экземпляра моего класса пользователя)

Я буду очень признателен тебе, если ты дашь примерный список классов и методов, достаточных для решения только указанных задач. Это сэкономит мне массу времени.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38687393
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProВот только сейчас добрался, поставил пример и офигел, увидев этот многоэтажный огород.

лишнее просто надо выкинуть и всё.

вот очень простой туториал, как добавить новую аутентификацию в веб формы.

http://www.asp.net/identity/overview/getting-started/adding-aspnet-identity-to-an-empty-or-existing-web-forms-project

если роли не нужны, просто не пользуйся ими, не нужны функции регистрации, смены пароля и т.д. и т.п., тоже самое, просто не используй их. в целом ASP.NET Identity Не зависит от базы данных и EF, т.е. можно не использовать EF, но тогда придётся реализовать интерфейсы IUserStore и другие, которые требуются по задаче. лучше разобраться самостоятельно, глубоко вникать не надо, основное в туториале, остальное можно по ходу дела раздуплить.

желательно использовать именно ASP.NET Identity, так как на сегодняшний день это активно продвигаемый и развиваемый подход. да, возможно завтра они придумают что-то другое, но это уже философия, которую даже не интересно слушать.

можно использовать SimpleMembershipProvider, но он по умолчанию хочет запихать свои данные в базу данных самостоятельно, что чаще всего не айс.

можно использовать старую модель провайдеров мембершипа, по этому делу материала в сети более чем достаточно.

можно ничего из предложенного не исопльзовать, и реализовать полностью свой механизм со своим блекджеком и ко.

в общем рекомендую ASP.NET Identity, который на мой взгляд менее избыточен и независим, чем другие, и в целом удачен. если используется EF, то для EF есть готовые адаптеры, ничего писать практически не надо, только скопировать и подкорректировать код инициализации. куда уж проще то.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38687394
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

ещё вот тут добрый дядька МСУ, да вон тот, который машет своей пятернёй из бани, накидал кучу полезного материала по теме:

http://codearticles.ru/catalogs/501
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38687566
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proпримерный список классов и методов, достаточных для решения только указанных задач
Код: c#
1.
 FormsAuthentication.SetAuthCookie(userName, false);
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38687728
Nicky_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если не использовать EF, а также для понимания внутренней кухни Identity рекомендую тынц
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38688874
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Последовательность шагов, которая у меня получилась, чтобы прикрутить к проекту MVC4 аутентификацию (не авторизацию) Identity в минимальном варианте (заодно в своей голове все уложу):

1) Проапгрейдиться до MVC5/WebAPI2 (полезная информация тут , тут )

2) Установить пакеты:
Identity Core
Identity Owin
Owin Host SystemWeb

3) Реализовать интерфейс Microsoft.AspNet.Identity.IUser (для примера пусть будет MYUser)
Собственно - там минимальный набор полей - Id и Name, то бишь смело можно прикручивать к любому своему классу пользователя

4) Реализовать интерфейс Microsoft.AspNet.Identity.IUserStore<MYUser> (для примера пусть будет MYUserStore).
Это класс для организации работы с хранилищем пользователей, интерфейс представляет собой простой CRUD-набор методов.

5) Создать startup-класс. Различные варианты его размещения и обнаружения описаны тут . Ориентировочное содержимое:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
using Owin;
using Microsoft.Owin;
using Microsoft.AspNet.Identity;
using Microsoft.Owin.Security.Cookies;


namespace ......
{
  public partial class Startup
  {
    public void Configuration(IAppBuilder app)
    {
      app.UseCookieAuthentication(new CookieAuthenticationOptions
      {
        AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
        LoginPath = new PathString("/Login")
      });
      app.CreatePerOwinContext(() => new UserManager<MYUser>(new MYUserStore()));

    }
  }
}



6) выпилить из web.config winforms-аутентификацию

7) При логине пользователя используется (очень упрощенно) следующая схема
Код: c#
1.
2.
3.
4.
5.
6.
7.
      var man = HttpContext.GetOwinContext().GetUserManager<UserManager<MYUser>>();
      var userIdentity = man.CreateIdentity(
        man.FindAsync("User", "Pass").Result;
        DefaultAuthenticationTypes.ApplicationCookie
        );
      var am = HttpContext.GetOwinContext().Authentication;
      am.SignIn(new AuthenticationProperties() { IsPersistent = true }, userIdentity);

Вторая строка создает ClaimIdentity-объект, содержащий ID и Name пользователя, указанного в первом параметре CreateIdentity. Этого пользователя можно получить через UserManager.FindAsync (который вызовет соответствующие метод хранилища MYUserStore), можно и каким-то другим путем.
Также при необходимости в этот ClaimIdentity можно напихать других Claim-ов (мне это пока не нужно, глубоко не рылся, можно почитать тут , тут ).
SignIn устанавливает пользователю куку, которая и хранит все эти Claim-ы. Соответственно, разлогинить пользователя - SignOut.

Также в контроллере можно использовать атрибут [Authorize] обычным образом

8) При работе авторизованный пользователь представлен объектом ClaimIdentity, через который можно получить его claim-ы, Можно получить ID и Name методами GetUserName и GetUserId.
В представлении объект доступен через @User.Identity (но надо добавить пространство имен Microsoft.AspNet.Identity в представление или в web.config). Соответственно, в контроллере - HttpContext.User.Identity


=====================================================================


собственно, вот. Поправьте плиз, если я что-то неправильно понял. Также у меня остались следующие вопросы:

а) при доступе авторизованного пользователя мне доступен его ID, дальше я могу сам создать экземпляр класса пользователя. Или все-таки он уже где-то создан?

б) связанный вопрос - в вышеописанном примере мне вообще не требовалось реализовывать CRUD-методы для хранилища, если я использую создание экземпляра класса пользователя другими способами. Однако "пустую" реализацию создать все равно пришлось, чтобы иметь возможность создать экземпляр UserManager. В какой момент эта реализация все таки потребуется? Если я решу использовать штатное управление пользователями?

в) как я понимаю, авторизация завязана на куки? Как сейчас принято поступать, если пользователь куки не поддерживает или отключил? просто отказываются работать (попробовал пару веб-приложений - они меня послали при отключенных куках)

г) в примерах, которые я смотрел, экземпляр AuthenticationManager-а не получают каждый раз, а хранят в статической переменной в пределах контроллера. Это нормальная практика, ничем не грозит? А почему для каждого контроллера, почему тогда уж не на уровне приложения?
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38688964
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proа) при доступе авторизованного пользователя мне доступен его ID, дальше я могу сам создать экземпляр класса пользователя. Или все-таки он уже где-то создан?

нет, его надо доставать из базы по Id или по Name

Shocker.ProВ какой момент эта реализация все таки потребуется? Если я решу использовать штатное управление пользователями?

да. создание пользователя лучше делать через UserManager. для работы с пользователями: получать коллекцию, фильтровать и т.д. использовать UM не обязательно.

Shocker.Proв) как я понимаю, авторизация завязана на куки? Как сейчас принято поступать, если пользователь куки не поддерживает или отключил? просто отказываются работать (попробовал пару веб-приложений - они меня послали при отключенных куках)

токен придётся сохранять постоянно в адресной строке. но вообще ситуация с отключением куков примерно такая же как и с отключением javascript -- интернет становится практически неюзабельным. мало кого заботят параноидальные индивидуумы.

Shocker.Proг) в примерах, которые я смотрел, экземпляр AuthenticationManager-а не получают каждый раз, а хранят в статической переменной в пределах контроллера. Это нормальная практика, ничем не грозит? А почему для каждого контроллера, почему тогда уж не на уровне приложения?

смысла его хранить нет. правильно получать через OwinContext как в вашем примере.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38693447
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttда. создание пользователя лучше делать через UserManager.почему? Что такого он дополнительно делает при создании?


И еще, вдруг до меня дошло. На уровне модели у меня нет ни контекста контроллера, ни сессии и т.п. То есть единственный способ иметь текущего пользователя в модели (а это нужно в 99,5% случаев) - передавать его через все конструкторы модели? Или есть какая-нибудь менее напряжная метода?
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38693502
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proпочему? Что такого он дополнительно делает при создании?

пароль хеширует, например. выдаёт токен для подтверждения... это же блэкбокс.

Shocker.ProИ еще, вдруг до меня дошло. На уровне модели у меня нет ни контекста контроллера, ни сессии и т.п. То есть единственный способ иметь текущего пользователя в модели (а это нужно в 99,5% случаев) - передавать его через все конструкторы модели? Или есть какая-нибудь менее напряжная метода?

можно через IPrincipal получить Id пользователя и при необходимости вытащить из базы на уровне модели, без участия контроллера или сессии.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38693542
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttможно через IPrincipal получить Id пользователяб-р-р, почитал-не понял, как это можно сделать на уровне модели, не имея контекста... экземпляр модели ведь вообще существует сам по себе. Поясни, плиз, бестолковому.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38693568
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proб-р-р, почитал-не понял, как это можно сделать на уровне модели, не имея контекста... экземпляр модели ведь вообще существует сам по себе. Поясни, плиз, бестолковому.

получить Id пользователя:

Код: c#
1.
2.
3.
4.
5.
6.
7.
using System.Threading;
using Microsoft.AspNet.Identity;

...

var principal = Thread.CurrentPrincipal;
var userId = principal.Identity.GetUserId();



участия контроллера, сессии или чего-то ещё не требуется.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38693581
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, спасибо!!!
Я-то понимал, что единственная ниточка, связывающая модель и контекст - это поток, не не думал, что настолько напрямую можно получить
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38693625
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProА, спасибо!!!
Я-то понимал, что единственная ниточка, связывающая модель и контекст - это поток, не не думал, что настолько напрямую можно получить

но вообще, желательно получать IPrincipal через свой интерфейс, чтобы можно было тестировать, например, используя DI контейнер.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38693639
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю, что сделаю свой метод расширения для Thread
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38695969
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гм, получается такая шняга.
Через тред я могу получить ид/имя пользователя, а мне постоянно нужен для работы экземпляр класса пользователя. Создание экземпляра = обращение к базе, поэтому хотелось бы создавать его не более одного раза за реквест.
Попробовал создать тред-статик поле для экземпляра класса пользователя, но этот тред в пуле и может предоставляться другим реквестам.

Подкиньте гениальную идею, как бы мне иметь легкий и безопасный доступ к экземпляру класса пользователя (созданному в начале этого реквеста) из любого места в пределах исполнения реквеста.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38696019
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Все уже придумано за нас, используйте Dependency Injection, рекомендую Autofac, он гарантирует жизнь экземпляра в пределах реквеста, а получать вы можете его в любом месте, не заботясь о том кто и как его создал. Опять же, для тестирования хорошо.

Суть такая, делаете некий сервис, допустим IUserService со свойством, например, CurrentUser. Реализация сервиса получает через конструктор IPrincipal и UserManager. Теперь, везде где требуется экземпляр юзера вы втыкаете в конструктор IUserService. Экземпляр сервиса на весь реквест будет один, соответственно экземпляр пользователя можно вытаскивать один раз из менеджера по запросу. Инъекция работает на всех топ уровнях, включая фильтры, контроллеры, вьюхи и далее вглубь вашей модели.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38696022
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Конечно, чтобы это работало, надо внедрить DI контейнер в ваш проект, зарегистрировать все зависимости по месту или в модулях. На сайте Autofac примеров достаточно.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38708428
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы не задавать глупых вопросов, отвлекся на пару недель на погружение в вопрос внедрения зависимостей (заодно решились и некоторые другие вопросы, для которых я уж было попытался сделать велосипед). Изучал по Марку Симану "Внедрение зависимостей в .NET", как я понимаю, это одна из наиболее серьезных работ на эту тему.

Итого для Autofac:
1) установить в проект autofac и autofac.integration.mvc
2) настроить следующим образом (при запуске проекта):
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
    public static void Configure()
    {
      // создается билдер, через который идет настройка
      var builder = new ContainerBuilder();
      // регистрируется набор классов HttpContextBase, HttpRequestBase, HttpResponseBase (и другие Http*Base),
      // которые можно будет потом использовать, как зависимости в своих классах
      builder.RegisterModule(new AutofacWebTypesModule());

      // далее регистрируем все классы, реализующие IController в сборке (то есть не обязательно наследники Controller)
      // можно, конечно, вместо этого зарегистрировать только нужные контроллеры через RegisterType или другими способами
      builder.RegisterControllers(Assembly.GetExecutingAssembly()).InstancePerRequest();
      // регистрируем вышепредложенный юзерсервис
      builder.RegisterType<UserService>().As<IUserService>().InstancePerRequest();

      // создаем предварительно настроенный контейнер
      var container = builder.Build();
      // и регистрируем autofac в качестве стандартного резолвера для разрешения зависимостей MVC
      // это избавляет от необходимости создавать свою фабрику контроллеров для DI
      DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
    }
 

все. дальше можно создавать контроллерам собственные конструкторы с внешними зависимостями

hVosttНа сайте Autofac примеров достаточно.абсолютный вакуум в нужном разделе
http://autofac.readthedocs.org/en/latest/integration/mvc.html
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38708435
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотри тут: http://habrahabr.ru/post/136895/
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38708440
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38708451
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneпосмотри тут: http://habrahabr.ru/post/136895/ ну на него я и ориентировался, не, я-то разобрался пока, это просто к слову про документацию ))
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38708456
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну тяжело присать документацию, это всегда так =)
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38708457
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
писать
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38708773
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proабсолютный вакуум в нужном разделе
http://autofac.readthedocs.org/en/latest/integration/mvc.html

это какой-то левый сайт.

вот же она, родная: https://github.com/autofac/Autofac/wiki/Mvc-Integration
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38708783
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttэто какой-то левый сайт.какой же левый
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38708786
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38708887
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

плиз, помоги добить тему , не стал спамить в этой ветке, поскольку вопросы достаточно общие.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38708909
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProhVostt,

плиз, помоги добить тему , не стал спамить в этой ветке, поскольку вопросы достаточно общие.

ответил.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38708913
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proкакой же левый

ну там нет нифига

http://autofac.org

раздел „Get Help“
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38709097
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нить знает как масштабирование в IE отрубить через html/css? Обновил какашку до 11-ой версии, она теперь автоматом все страницы масштабировать начала.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38709148
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st_stКто-нить знает как масштабирование в IE отрубить через html/css? Обновил какашку до 11-ой версии, она теперь автоматом все страницы масштабировать начала.

Погуглил и в итоге бида/пичаль, этот баг так просто не лечится. Вроде реестр можно пропатчить или в файле monitor.inf чё-то поменять, короче уныло. Баг почти год уже висит .
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38709202
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st_stПогуглил и в итоге бида/пичаль, этот баг так просто не лечится. Вроде реестр можно пропатчить или в файле monitor.inf чё-то поменять, короче уныло. Баг почти год уже висит .

Quick and Easy Workaround: CTRL+Mouse Scrolling Button. This doesn't reset the default to 100% but it's quick.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38709204
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
and...

Use an alternative browser such as Google Chrome or Mozilla Firefox.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38709238
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тестить всё равно в эксплорере надо, поэтому я по первому варианту пока - CTRL+Mouse Scrolling Button. Нет чтоб фичи новые внедрять, сидят баги лепят, у них там специальный отдел наверное - по созданию багов в эксплорере, работает с конца 90-ых
Надоели условные комментарии, хочу эту штуку .
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38709269
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st_st,

да пора уже заменить CSS на LESS и дело с концом
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38719855
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Код: c#
1.
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));


все. дальше можно создавать контроллерам собственные конструкторы с внешними зависимостями
Вообще, что получается. Я ведь могу в конце-концов получить зарегистрированную зависимость в любом месте ASP.NET-приложения через
Код: c#
1.
DependencyResolver.Current.GetService<IAnyService>

не заботясь о передаче зависимостей через конструкторы и последующее их локальное сохранение. Или тут есть подводные камни?
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38719873
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProИли тут есть подводные камни?

Зависимость от DependencyResolver. Не то, чтобы это было сильно критично в процессе разработки, и на вид удобно. Но это мелкая паскудная грабля, на которую я один раз имел волшебное, не передаваемое словами удовольствие наступить. DependencyResolver может быть полезен для использования в разработке инфрастуктурного кода (в который сложно или невозможно впихнуть инъекцию), отделённого от логики (допустим, модули там, обработчики), и ещё полезен для прототипирования (временно, значит).

В общем, DependencyResolver это Service Locator, антипаттерн тобишь. И не зря.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38719875
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ясно.

Собственно, появилась необходимость получить зависимость в базовом (абстрактном) классе контроллера - то есть я не могу внедрить ее через конструктор. То есть получается либо внедрить через свойство, либо получить из DependencyResolver-а
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38720417
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

через свойство конечно. в фильтры также внедряется.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38720419
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

вот, например, где без DependencyResolver не обойтись, это в обработчиках событий HttpApplication, там нет инъекции и приходится дёргать DR. правда это возможно только в тех событиях, где доступен HttpContext.Current, иначе будет падать.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38727155
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немножко возвращаясь к аутентификации. Если пользователь не выбирает режим "запомнить меня", Indentity позволяет в следующей сессии достать логин, который был в предыдущей сессии? Или самому возиться с куками?
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38727220
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProНемножко возвращаясь к аутентификации. Если пользователь не выбирает режим "запомнить меня", Indentity позволяет в следующей сессии достать логин, который был в предыдущей сессии? Или самому возиться с куками?

как можно достать из сессии логин, если кука сессионная? сессионная кука удаляется если закрыть браузер/вкладку. неоткуда доставать логин.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38727350
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttShocker.ProНемножко возвращаясь к аутентификации. Если пользователь не выбирает режим "запомнить меня", Indentity позволяет в следующей сессии достать логин, который был в предыдущей сессии? Или самому возиться с куками?

как можно достать из сессии логин, если кука сессионная? сессионная кука удаляется если закрыть браузер/вкладку. неоткуда доставать логин.Не. Я имею ввиду, помимо сессионной куки. Некоторые сайты при входе предлагают по умолчанию логин, под которым пользователь заходил последний раз, вот я и хочу узнать, имеет ли такой встроенный функционал или писать его самому.
...
Рейтинг: 0 / 0
Аутентификация шаг за шагом
    #38727372
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProНе. Я имею ввиду, помимо сессионной куки. Некоторые сайты при входе предлагают по умолчанию логин, под которым пользователь заходил последний раз, вот я и хочу узнать, имеет ли такой встроенный функционал или писать его самому.

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

вот для примера. некоторые экземпляры анатомических экспериментов на мозге делают такое кастомное поле для ввода номера кредитной карты, типа с проверкой ввода (только цифры) и автоматическим разделением по группам, да так что невозможно вставить из буфера обмена, или вообще делают по инпуту на каждую группу цифр. деликатно это можно назвать "перестарались", а не деликатно...
...
Рейтинг: 0 / 0
52 сообщений из 52, показаны все 3 страниц
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Аутентификация шаг за шагом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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