ASP.NET MVC Update DB pri LogOffu   zodpovězená otázka

C#, ASP.NET MVC, Databáze

Dobrý večer,

chtěl bych poprosit o radu, mám "web" a v něm uživatele, vše jede na tý šabloně co VS vygeneruje.

Chci udělát status adminu (role = admin) Onnline / Offline.

Přidal jsem si do DB s uživateli bool Status, a při Loginu mi to zapíše do Status True, teď potřevují nějak updatovát DB při LogOffu, jelikož potřebují přepsát True na False.

Můžete mi poradit, jak updatuju DB při LogOffu?

Děkuji

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No, udělej to stejně jako při tom loginu přeci -- v Controlleru account, je snad metoda logoff..

Problém ale budeš míst s tím, že se ti admin nemusí odhlásit, ale třeba jenom vypne prohlížeč.. A tímto způsobem nezjistíš jestli je online..

Takže buď musíš neustále udržovat nějaké spojení s adminem ( zkus třeba signalR), nebo s nějakou periodou projet všechny adminy, jestli je nějaký online (ale to se stejně zjistí přes poslední aktivitu, takže ten signal R je asi nejlepší volba)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No je, zkoušel jsem to stejně, problem je v tom že LogIn jede pres asnync, tam uživatel zadá login a heslo tim zjistim co to je za uživatele.

U logoffu jsem zkoušel stejně, ale tam je problém v tom že tam potřebuji ten login a pass, login jsem nějak zjistil pomoc GetUserName nebo nějak tam to je, ale s heslem mám problém.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Heslo potřebujete pouze (a jedině) pro prvotní autentizaci uživatele. Pokud je uživatel již přihlášen, tak již znáte jeho identitu tj. i jeho ID do databáze. Takže pro autorizaci, logovaní činností uživatele, načítání i změnu jeho personálních dat atd. heslo znát z principu nebudete, ale zároveň nemusíte.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To je právě ten problém, ja netušim jak převzít informace o přihlášeném uživateli.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Informace o aktuálně přihlášeném uživateli jsou dostupné pod

HttpContext.Current.User

a

HttpContext.Current.User.Identity

Kde je objekt Principal resp. Identity, který uživatele reprezentuje. V případě Windows authentizace se jedná o WindowsPrincipal / WindowsIdentity. V případě dřívější forms authentizace se jednalo o GenericPrincipal / FormsIdentity případně vlastní objekt.

Dnes (jako v případě výchozí ASP.NET šablony) se používá technologie označovaná jako tzv. ASP.NET identity, což je použití obecnějšího WIF (Windows Identity Foundation) konceptu v ASP.NET.

Ve WIF se jedná o ClaimsPrincipal resp. ClaimsIdentity a údaje o přihlášeném uživateli jsou na tomto objektu dostupné v podobě jednotlivých claimů.

Nicméně pro získání ID uživatele v ASP.NET identity je tam tuším extension metoda:

using Microsoft.AspNet.Identity;

User.Identity.GetUserId();

Pro začátek doporučuji například tyto články:

http://www.dotnetportal.cz/blogy/15/Null...

http://www.dotnetportal.cz/blogy/15/Null...

http://blogs.msdn.com/b/webdev/archive/2...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Díky

ASP se teprv takže jsi mi moc pomohl :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback