Конфигуриране на удостоверяване в IIS 8
IIS 8 поддържа интегриран режим на ASP.NET, който комбинира конвейера за обработка на HTTP на ASP.NET с тръбопровода за обработка на HTTP на IIS, наред с други неща. Това предоставя изобилие от нови функции, които могат да се използват в комбинация със съществуващите познания за ASP.NET. Например, една от тях е възможността да се използва удостоверяване на ASP.NET формуляри за други уеб приложения, конфигурирани в IIS 8, които не трябва да бъдат изградени на ASP.NET.
Освен това IIS 8 използва файла web.config, за да съхранява много части от конфигурацията на уеб приложението в уеб сървъра. Това означава, че много настройки на приложението могат да бъдат конфигурирани чрез конзолата за управление на IIS 8 или чрез директно модифициране на файла web.config. С тясната интеграция на инструментите за конфигуриране на ASP.NET и IIS 8, всички промени, направени директно във файла web.config, незабавно се отразяват в конзолата за управление и обратно.
Нека първо да разгледаме опциите за конфигуриране на удостоверяване на формуляри от средата на конзолата за управление на IIS 8. Можете да конфигурирате удостоверяване на формуляри с помощта на инструмента за конфигуриране на удостоверяване на конзолата за управление на IIS 8, както е показано на фигурата по-долу:
И двете конфигурационни настройки засягат файла web.config и уеб сървърът взема тази информация от web.config, за да определи собственото си поведение, както се вижда в следния кодов фрагмент:
Във всеки случай унифицираната конзола за управление е много добре обмислена, така че няма нужда да конфигурирате сигурността на IIS и ASP.NET чрез други инструменти. Много опции по подразбиране се съхраняват директно във файла web.config. Както знаете, можете дори да конфигурирате IIS така, чепочти всички опции бяха поставени директно в web.config. Въпреки това, както беше споменато по-рано, интегрирането на ASP.NET предоставя много опции при стартиране на IIS 8 в интегриран режим на ASP NET.
Когато изпълнява IIS 8 в интегриран режим (който е по подразбиране), IIS използва канал за обработка на HTTP, за да обработва както базирани на ASP.NET HTTP модули, така и вградени в IIS 8 HTTP модули.
Тъй като удостоверяването на формуляри е реализирано като ASP.NET HTTP модул, то може да се използва за всяко уеб приложение и виртуална директория, конфигурирани в IIS, които работят в интегриран режим. Това означава, че удостоверяването на формуляри може да се използва с други типове приложения, като статични HTML сайтове, класически ASP приложения или дори PHP приложения. Всичко, което трябва да направите, е да настроите уеб приложението като виртуална директория и след това да конфигурирате удостоверяване на формуляри чрез конзолата за управление на IIS 8. Това автоматично ще добави web.config към приложението.
Тъй като има един допълнителен детайл, за който трябва да се погрижим, нека да разгледаме набързо конфигурирането на удостоверяване на формуляри за приложение, което не е ASP.NET в този раздел. Да предположим, че имаме следната PHP страница, работеща на уеб сървър:
Тъй като IIS 8 първоначално поддържа удостоверяване на формуляри, като разчита на модула за удостоверяване на HTTP формуляри, който се доставя с ASP.NET, той работи точно както би работил с ASP.NET приложение. Всичко, което трябва да направите, е да се уверите, че имате необходимата страница за вход, която сама по себе си е ASP.NET страница. Частите, необходими за ASP.NET страницата, също трябва да са налични в уеб приложението (или в друга виртуална директория, акоизползват се бисквитки за удостоверяване на кръстосано приложение).
Фигурата по-долу показва PHP страница заедно със страница за влизане в ASP.NET във виртуална директория. Удостоверяването на формуляри просто се конфигурира чрез конзолата за управление на IIS 8, както е описано по-рано:
Това е така, защото по подразбиране управляваните HTTP модули, включително модула за удостоверяване на формуляри, са конфигурирани да се изпълняват само когато са поискани от базиран на ASP.NET код. Следователно, за да работи удостоверяването на формуляри, ще трябва да промените това поведение, като извикате инструмента за конфигуриране на HTTP модули в конзолата за управление на IIS 8, когато е избрано вашето уеб приложение. След това трябва да покажете подробната информация за модула FormsAuthentication, конфигуриран в списъка с модули, както е показано на фигурата по-долу:
При отворен инструмент за конфигуриране на HTTP модули намерете FormsAuthentication и щракнете двукратно върху него или изберете връзката Редактиране в лентата на задачите вдясно. В диалоговия прозорец, който се отваря, премахнете отметката от квадратчето Invoke Only for Requests to ASP.NET Applications or Managed Handlers, както е показано на фигурата по-долу:
След завършване на тази конфигурация, при достъп до PHP страница в директорията на уеб приложението, заявката ще бъде удостоверена чрез удостоверяване чрез ASP.NET формуляри. Конфигурационният файл web.config за уеб приложението ще изглежда така:
Конфигурацията на FormsAuthenticationModule е важна. Неотметнатият флаг указва preCondition="", което е зададено по подразбиране на managedHandler.