Прежде всего, я новичок, когда дело доходит до программирования, и я только самообучающийся и хотел бы попросить решения, с которыми я столкнулся и которые не могут быть решены моим собственным
Я не могу заставить это работать. Я хотел бы, чтобы Session ["userlevel"] == "Admin" был единственным, кто получит доступ к представлению. Как я могу заставить это работать, пожалуйста, помогите ..
public ActionResult Authorize(Test user)
{
using (TableEntities db = new TableEntities())
{
var loginUserAdmin = db.Employees.Where(x => x.Username == user.Username && x.UserPassword == user.UserPassword && x.AccountStatus == "Active" && x.AccountType == "Admin").FirstOrDefault();
if (loginUserAdmin == null || loginUserAdmin != loginUserAdmin)
{
var loginUserStaff = db.Employees.Where(x => x.Username == user.Username && x.UserPassword == user.UserPassword && x.AccountStatus == "Active" && x.AccountType == "Staff").FirstOrDefault();
if(loginUserStaff == null || loginUserStaff != loginUserStaff)
{
var loginUserUser = db.Employees.Where(x => x.Username == user.Username && x.UserPassword == user.UserPassword && x.AccountStatus == "Active" && x.AccountType == "User").FirstOrDefault();
if(loginUserUser== null || loginUserUser != loginUserUser)
{
var loginUserAdmin1 = db.Employees.Where(x => x.Username == user.Username && x.UserPassword == user.UserPassword && x.AccountStatus == "Inactive" && x.AccountType == "Admin").FirstOrDefault();
if (loginUserAdmin1 ==null || loginUserAdmin1 != loginUserAdmin1)
{
var loginUserStaff1 = db.Employees.Where(x => x.Username == user.Username && x.UserPassword == user.UserPassword && x.AccountStatus == "Inactive" && x.AccountType == "Staff").FirstOrDefault();
if(loginUserStaff1 == null || loginUserStaff1 != loginUserStaff1)
{
var loginUserUser1 = db.Employees.Where(x => x.Username == user.Username && x.UserPassword == user.UserPassword && x.AccountStatus == "Inactive" && x.AccountType == "User").FirstOrDefault();
if (loginUserUser1 == null || loginUserUser1 != loginUserUser1)
{
ViewBag.LoginError = "Invalid Credentials";
return View("Login");
}
else
{
ViewBag.LoginError = "Inactive User Account";
return View("Login");
}
}
else
{
ViewBag.LoginError = "Inactive Staff Account";
return View("Login");
}
}
else
{
ViewBag.LoginError = "Inactive Administrator Account";
return View("Login");
}
}
else
{
ViewBag.Messageko = "User";
return RedirectToAction("Dashboard");
}
}
else
{
ViewBag.Messageko = "Staff";
Session["userid"] = loginUserStaff.EmployeeID;
Session["firstName"] = loginUserStaff.FirstName;
Session["lastName"] = loginUserStaff.LastName;
Session["userName"] = loginUserStaff.Username;
Session["userPassword"] = loginUserStaff.UserPassword;
Session["userlevel"] = loginUserStaff.AccountType;
return RedirectToAction("Dashboard" , "Test", user);
}
}
else
{
ViewBag.Messageko = "Admin";
Session["userid"] = loginUserAdmin.EmployeeID;
Session["firstName"] = loginUserAdmin.FirstName;
Session["lastName"] = loginUserAdmin.LastName;
Session["userName"] = loginUserAdmin.Username;
Session["userPassword"] = loginUserAdmin.UserPassword;
Session["userlevel"] = loginUserAdmin.AccountType;
ViewBag.acc = loginUserAdmin.AccountType;
return RedirectToAction("Dashboard", "Test" ,"Login");
}
это мой контроллер панели управления
[HttpGet]
public ActionResult Dashboard()
{
TableEntities db = new TableEntities();
ViewBag.Active = db.Employees.Where(x => x.AccountStatus == "Active");
ViewBag.Message = "GG";
return View();
}
А это мой взгляд
@{
ViewBag.Title = "Dashboard";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@if (Session["userlevel"].ToString() == "Admin")
{
Response.Redirect("~/Test/Login");
}
else
{
if (ViewBag.Active != null)
{ <label style="font-size:12px; color:red;">@ViewBag.Messageko</label>
<table class="table table-striped">
<tr>
<th>EmployeeID</th>
<th>First Name</th>
<th>Middle Name</th>
<th>Last Name</th>
<th>User Name</th>
<th>User Password</th>
<th>Account Status </th>
</tr>
@foreach (var User in ViewBag.Active)
{
<tr>
<td align="center">@User.EmployeeID</td>
<td align="center">@User.FirstName</td>
<td align="center">@User.MiddleName</td>
<td align="center">@User.LastName</td>
<td align="center">@User.Username</td>
<td align="center">@User.UserPassword</td>
<td align="center" class="text-success">@User.AccountStatus</td>
</tr>
}
</table>
}
}
Большое спасибо