发送数据到我的主页

本文关键字:我的 主页 数据 | 更新日期: 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>
}