Получение типа пользователя в mvc с помощью mongodb

Я пытаюсь проверить, принадлежит ли пользователь к группе Admin. Если он / она делает, страница администратора может быть видна из браузера. До сих пор у меня это:

@if (HttpContext.Current.Session["userName"] != null && !Session["userName"].Equals(""))
{
   <a href="@Url.RouteUrl("AdminPage")">Admin page</a>
}

Он работает так, как он должен, отображает этот маршрут только для людей, которые вошли в систему, но как насчет проверки типа и разрешения его видеть только пользователям-администраторам? У меня также есть этот метод в моем userDB.

public string getType(string username) {
        var mongoClient = new MongoClient("mongodb://localhost");
        var database = mongoClient.GetDatabase("SearchForKnowledge");
        var coll = database.GetCollection<BsonDocument>("Users");

        var filter = Builders<BsonDocument>.Filter.Eq("userName",username);
        var results = coll.Find(filter).ToList().First();
        return results["type"].ToString();
    }

Он просто возвращает тип пользователя.

1 ответ

  1. Необходимо вызвать метод getType, передав имя пользователя в качестве параметра. Если возвращаемое значение getType-Admin, перенаправьте пользователей на страницу admin.

    string userName= (string)(Session["userName"]);
    string result = getType(userName);
    if (result == "Admin")
      //... redirect the user