将数据发送到我的母版页
Sending data to my master page
我正在 Intranet 上工作(纠正错误并添加功能)- 但管理员选项卡的显示存在问题,它以任何一种方式显示!
我现在可以通过以下 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
为真,则显示“管理”选项卡(或简单地拒绝其访问),否则不显示。
但我有两个主要问题:
我想知道我可以在哪里填充我的 isAdmin
变量来填充它(这样我就不必登录来填充它)
而且我不知道如何将它的值传递给我的 Site.Master
例如使用 ViewBag.IsAdmin = 1
如:
...
while (reader.Read())
{
isAdministrator = reader[0].ToString();
isAdmin = Convert.ToBoolean(isAdministrator);
ViewBag.IsAdmin = isAdmin;
break;
}
...
然后在 _Layout.cshtml 中,您可以使用 ViewBag 中的变量,例如:
@if(ViewBag.IsAdmin == 1)
{
<div>
</div>
}
但我认为您应该寻找 SimpleMembership
功能。
那么你可以使用:
@if(HttpContext.Current.User.IsInRole("Administrator"))
{
<div>
</div>
}
我正在 Intranet 上工作(纠正错误并添加功能)- 但管理员选项卡的显示存在问题,它以任何一种方式显示!
我现在可以通过以下 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
为真,则显示“管理”选项卡(或简单地拒绝其访问),否则不显示。
但我有两个主要问题:
我想知道我可以在哪里填充我的
isAdmin
变量来填充它(这样我就不必登录来填充它)而且我不知道如何将它的值传递给我的
Site.Master
例如使用 ViewBag.IsAdmin = 1
如:
...
while (reader.Read())
{
isAdministrator = reader[0].ToString();
isAdmin = Convert.ToBoolean(isAdministrator);
ViewBag.IsAdmin = isAdmin;
break;
}
...
然后在 _Layout.cshtml 中,您可以使用 ViewBag 中的变量,例如:
@if(ViewBag.IsAdmin == 1)
{
<div>
</div>
}
但我认为您应该寻找 SimpleMembership
功能。
那么你可以使用:
@if(HttpContext.Current.User.IsInRole("Administrator"))
{
<div>
</div>
}