tout d'abord im un débutant dans ASP.NET et si désolé si cette question est stupide! J'ai créé un système de connexion en utilisant des variables de session si le nom d'utilisateur/mot de passe correspond aux données de la base de données! Le problème est que si im capable de se connecter je ne peux pas LOGOUTASP.NET MVC4 LogOff ne fonctionne pas
//
// POST: /Account/LogOff
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult LogOff()
{
Session.RemoveAll();
return RedirectToAction("Index", "Home");
}
le code ci-dessus est de la AccountController
@if (Session["LoggedUser"]!=null) {
<text>
Hello, @Html.ActionLink(Session["Username"].ToString(), "Manage", "Account", routeValues: null, htmlAttributes: new { @class = "username", title = "Manage" })!
@using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm" })) {
@Html.AntiForgeryToken()
<a href="javascript:document.getElementById('logoutForm').submit()">LogOff</a>
}
</text>} else {
<ul>
<li>@Html.ActionLink("Register", "Register", "Account", routeValues: null, htmlAttributes: new { id = "registerLink" })</li>
<li>@Html.ActionLink("Log in", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" })</li>
</ul>}
et ce qui précède est de la _partialLogin
Mon problème est que lorsque je presse logOff le site saute juste la partie LogOff du contrôleur et la session n'est pas effacée, ce qui signifie que je suis encore connecté en tant qu'utilisateur je vous remercie pour votre aide
EDIT: ici est le contrôleur de la page de connexion dans le cas où il est nécessaire:
//
// GET: /Account/Login
[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
ViewBag.ReturnUrl = returnUrl;
return View();
}
//
// POST: /Account/Login
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl)
{
if (ModelState.IsValid)
{
DefaultConnection dc = new DefaultConnection();
var Users = (from c in dc.NonActivated_Users select c).ToList<NonActivated_Users>();
foreach (NonActivated_Users nua in Users){
if (nua.Password_Hash == Hasher.HashString(model.Password) && nua.Username==model.UserName){
Session["LoggedUser"] = nua;
Session["Rights"] = 4; //non activated user
Session["Username"] = 0;
nua.LastActive = DateTime.Now;
dc.SaveChanges();
return RedirectToLocal(returnUrl);
}
}
var Users1 = (from c in dc.User select c).ToList<User>();
foreach (User au in Users1)
{
if (au.Password_Hash == Hasher.HashString(model.Password) && au.Username == model.UserName)
{
Session["LoggedUser"] = au;
if (au.Membership == false) {
Session["Rights"] = 3; //activated user non premium
}
else
{
Session["Rights"] = 2; //activated user premium
}
au.Last_Active = DateTime.Now;
dc.SaveChanges();
return RedirectToLocal(returnUrl);
}
}
}
// If we got this far, something failed, redisplay form
ModelState.AddModelError("", "The user name or password provided is incorrect.");
return View(model);
}
vous êtes incroyable! merci :) –
Vous êtes les bienvenus :) – Robert