C# 将数据发送到我的母版页

C# 将数据发送到我的母版页,c#,sql,asp.net-mvc,forms-authentication,C#,Sql,Asp.net Mvc,Forms Authentication,我正在处理一个内部网(纠正错误并添加功能)-但是管理员选项卡的显示有问题,它以任何方式显示 通过以下SQL请求,我现在可以知道该员工是否是管理员: [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public ActionResult Login(LoginModel model, string returnUrl) { // Variables string isAdministrator; bool isA

我正在处理一个内部网(纠正错误并添加功能)-但是管理员选项卡的显示有问题,它以任何方式显示

通过以下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
为true,则显示“管理”选项卡(或简单地拒绝其访问),如果不是,则不显示

但我有两个主要问题:

  • 我想知道在哪里可以填充我的
    isAdmin
    变量,以便无论发生什么情况都能填充它(这样我就不必登录才能填充它)

  • 我不知道如何将它的值传递给我的
    站点。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>
}

使用SqlParameter防止sql注入。我将尽快解决安全问题,谢谢。ViewBag不是用来向视图而不是母版页发送数据的吗?我希望将其发送到母版页,以便在需要时可以拒绝访问或停止显示管理页。事实证明,我为SimpleMembership创建了角色以及与之相关的所有内容,它就像一个符咒。
@if(HttpContext.Current.User.IsInRole("Administrator"))
{
    <div>
    </div>
}