Diskuze: ASP.MVC Update po loginu
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 10 zpráv z 10.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Ahoj,
jaký máš studio a MVC. Já mám 2013 a MVC 5.1.0.0 a žádný RegDate ani LoginDate. Mám to všechno by default.
Každopádně pokud chci hledat kód po loginu, tak není moc logické hledat
v metodě Edit.
. Vsadil bych
na AccountController a nějakou metodu Login.
Vím, regdate a login date, jsem si tám přidal jak pišu, v edit jsem koukal ja to vlastne pracuje, jelikož update LoginDate je vlastne edit.
Obávám se že takhle se s žádným programátorem nedomluvíš. Oni nemají křišťálovou kouli aby věděli co kdes ty jak udělal a o čem to mluvíš. Základem je vynechat abstraktní pojmy. Tak to s zkusíme ještě jednou.
Ty máš v tabulce pro uživatele dva sloupce navíc. Vůbec jsi nepsal, že sis je tam sám přidal a pokud ano, nenapsal jsi jak. Nezdá se to, ale může to být důležité.
Pak máme nějakou magickou metodu Edit. Jelikož každý Controller může mít Edit bylo by dobrý ji sem hodit. Pravděpodobně půjde o template při použití EF, ale tak pro jistotu...
Osobně tuším, ale nejsem vědma 
Ak máš vygenerovaný AccountController, tak bude vyzerať asi nejako takto.
// POST: /Account/Login
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (ModelState.IsValid)
{
var user = await UserManager.FindAsync(model.UserName, model.Password);
if (user != null)
{
await SignInAsync(user, model.RememberMe);
// Zalogovať prihlásenie
return RedirectToLocal(returnUrl);
}
else
{
ModelState.AddModelError("", "Invalid username or password.");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
Predtým ako zavoláš ten return RedirectToLocal(returnUrl), môžeš robiť aké úpravy chceš. Aspoň teda myslím, že overenia hesla je v tom FindAsync a SignInAsync ti už len prihlási usera. Každopádne, možno by bolo rozumnejšie vytvoriť nejakú log tabuľku, kde budeš zapisovať prihlásenia. Aspoň nebudeš mať len to posledné.
A update...ten objekt user by mal mať aj tie tvoje rozšírené property, takže stačí do tej property LoginDate, dať aktuálny čas a potom (strielam od brucha, neskúšal som) UpdateAsync().
user.LogInDate = DateTime.Now;
UserManager.UpdateAsync(user);
Ešte dodám, že ak si rozšíril toho IdentityUsera, nezabudni aj upraviť
ten dbContext, aby pracoval s tým rozšíreným (viď. odstavec Extending the
IdentityModel Class with Additional Properties).
http://www.codeproject.com/…ntity-Accoun
A do tretice samozrejme oprava (už mi nejde upraviť koment).
await UserManager.UpdateAsync(user);
Každopádne som to otestoval a funguje to takto 
Menši dotaz ještě, jak je to u LogOut ?
Tam musím nějak převzít ID nebo Email uživatele, ale teď nevím jak.
System.Web.Security.Membership.GetUser().ProviderUserKey;
Zobrazeno 10 zpráv z 10.