0
我在我的項目中使用自定義身份驗證,並且無法管理會話以獲取路由中的用戶權限。 這是我的代碼:asp.net中的會話管理代碼優先
管理控制器
// POST: administration
[HttpPost]
public ActionResult Login(Admin admin)
{
var user = AdminContext.admins.SingleOrDefault(u => u.Email == admin.Email && u.Pass == admin.Pass);
if (user != null)
{
Session["adminID"] = user.adminID;
Session["adminNom"] = user.Nom.ToString() + " " + user.Prenom.ToString();
if (System.IO.File.Exists(Server.MapPath("~" + user.Photo)))
{ Session["adminPhoto"] = "~" + user.Photo; }
else
{ Session["adminPhoto"] = "~/Content/TemplateAdmin/assets/images/no_img.png"; }
return RedirectToRoute("Dashboard");
}
else
{
ModelState.AddModelError("", "Email ou mot de passeest incorrect");
return View("~/Views/Administration/Login.cshtml");
}
}
項目路線
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "LoginAdmin",
url: "administration",
defaults: new { controller = "Admin", action = "Login" }
);
routes.MapRoute(
name: "Dashboard",
url: "administration/dashboard",
defaults: new { controller = "Dashboard", action = "Index"}
);
routes.MapRoute(
name: "Profile",
url: "administration/profile",
defaults: new { controller = "Admin", action = "Profil" }
);
routes.MapRoute(
name: "Gestion_admins",
url: "administration/gestion_admins/{action}/{id}",
defaults: new { controller = "Admin", action = "Index", id = UrlParameter.Optional }
);
}
我應該檢查會議在我的項目中所有的ActionResult?像這樣:
// POST: Profil
[HttpPost]
public ActionResult Profil(Admin model)
{
if (Session["adminID"] != null)
{
model.adminID = Convert.ToInt32(Session["adminID"]);
}
}