发送数据到我的主页
本文关键字:我的 主页 数据 | 更新日期: 2023-09-27 18:16:07
我正在做一个内部网(纠正错误和添加功能)-但是管理员选项卡的显示有一个问题,它显示两种方式!
我现在能够知道雇员是否是一个管理员或不与以下SQL请求:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl)
{
// Variables
string isAdministrator;
bool isAdmin;
// Checks the admin status of logging in user
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
{
using (SqlCommand command = new SqlCommand("SELECT isAdministrator FROM Employee WHERE Login = '" + model.UserName + "'", connection))
{
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
isAdministrator = reader[0].ToString();
isAdmin = Convert.ToBoolean(isAdministrator);
ViewData["isAdmin"] = isAdmin;
}
}
}
}
// Not relevant things related to logging in
return View(model);
}
行为应该是:如果isAdmin
为真,则显示Administration选项卡(或简单地拒绝其访问);如果不是,则不显示。
但是我有两个主要问题:
我想知道我可以在哪里填充我的
isAdmin
变量,无论如何都要填充它(这样我就不必登录来填充它了)我不知道如何将它的值传递给我的
Site.Master
以ViewBag.IsAdmin = 1
为例:
...
while (reader.Read())
{
isAdministrator = reader[0].ToString();
isAdmin = Convert.ToBoolean(isAdministrator);
ViewBag.IsAdmin = isAdmin;
break;
}
...
,然后在_Layout。你可以使用ViewBag中的变量,如:
@if(ViewBag.IsAdmin == 1)
{
<div>
</div>
}
但在我看来,你应该寻找SimpleMembership
功能。
那么你可以使用:
@if(HttpContext.Current.User.IsInRole("Administrator"))
{
<div>
</div>
}