Windows autentizace (ntlm)
- rumcais1
- Člen | 80
Jsem začátečník v NETTE. Na IIS bych potřeboval udělat windows authentizaci. Uživatele dostanu pomocí $_SERVER[„LOGON_USER“], ale nevím jak ho pak dostat do nette. Opravnění bych pak měl zapsané v db. Ještě bych pak ověřoval rozsah sítě a když půjde z venku tak dal klasický sign formular. Mám to udělané v klasickém php, ale nevím jak na to v NETTE. Díky za radu.
- Šaman
- Člen | 2659
Můžeš si od BasePresenteru
podědit
SecuredPresenter
a v jeho metodě startup()
si
normálně staticky načíst data stejně, jako jsi byl zvyklý. Nebo to nacpat
rovnou do BasePresenteru
. Metoda startup se zavolá pokaždé jako
první a je v ní nutné volat parent::startup()
.
Je to hodně ošklivý způsob (a těch mrtvých koťátek..), ale jestli
s Nette začínáš, tak se tu nejdřív rozkoukej a pak zjisti, jestli se
nevyplatí řešit to jinak.
Editoval Šaman (2. 2. 2013 23:33)
- ic
- Člen | 430
Taky jsem tento způsob kdysi používal… ale co si vzpomínám to mělo dost problémů. Nemožností nastavit si dobu přihlášení počínaje a tím, že přihlášený uživatel odesílá jméno i heslo v čitelné podobě (jen zakódované do base64) v hlavičce HTTP protokolu a kdokoliv ho tedy může po cestě odposlechnout. Ve své době, kdy se tohle hojně používalo na to byly i programy na routery, které takovéto hesla odchytávaly a ukládaly.
- rumcais1
- Člen | 80
ic: Já to ntlm používám jen z vnitřní sítě. IIS mám taky uvnitř.
A z venku se budou hlásit klasicky.
Šaman: když to chci použít v BasePresenteru abych si to zkusil jak to
funguje. Ja to použít? zkusil jsem dát do startup dát new
Nette\Security\Identity(2, NULL, []); ale to mi nepřihlásí.
- echo
- Člen | 134
Zdravím, zkuste si do presenteru injectnout Nette\Http\UserStorage a
nastavit identitu $this->userStorage->setIdentity() a
$this->userStorage->setAuthenticated(true). https://api.nette.org/…age.php.html#82
https://api.nette.org/…ser.php.html#86
Nebo ještě lépe, napište si vlastní Nette\Security\IAuthenticator a v base presenteru pak $this->getUser()->login($credentials).