C# 如何在登录时获取对象列表并在注销前使用
我正在做的是:C# 如何在登录时获取对象列表并在注销前使用,c#,asp.net-mvc,C#,Asp.net Mvc,我正在做的是: 1。我正在获取布局页面上的用户角色。 @{ List<string> UserRole = new List<string>(); if(User.Identity.IsAuthenticated){ UserRole = DocRevGen.Class.Common.Roles(User.Identity.Name); } } @{
1。我正在获取布局页面上的用户角色。
@{
List<string> UserRole = new List<string>();
if(User.Identity.IsAuthenticated){
UserRole = DocRevGen.Class.Common.Roles(User.Identity.Name);
}
}
@{
if (UserRole.Contains("Admin") || UserRole.Contains("User"))
{
<li class="active"><a href="#">Overview</a></li>
}
}
@{
List UserRole=new List();
if(User.Identity.IsAuthenticated){
UserRole=DocRevGen.Class.Common.Roles(User.Identity.Name);
}
}
2。像这样使用此用户角色。
@{
List<string> UserRole = new List<string>();
if(User.Identity.IsAuthenticated){
UserRole = DocRevGen.Class.Common.Roles(User.Identity.Name);
}
}
@{
if (UserRole.Contains("Admin") || UserRole.Contains("User"))
{
<li class="active"><a href="#">Overview</a></li>
}
}
@{
if(UserRole.Contains(“Admin”)| | UserRole.Contains(“User”))
{
}
}
但问题是每次加载页面时都会调用UserRole
。
我想在登录时填写一次UserRole
,并使用UserRole
直到注销。
@{
List<string> UserRole = new List<string>();
if(User.Identity.IsAuthenticated){
UserRole = DocRevGen.Class.Common.Roles(User.Identity.Name);
}
}
@{
if (UserRole.Contains("Admin") || UserRole.Contains("User"))
{
<li class="active"><a href="#">Overview</a></li>
}
}
有什么解决办法吗。
我只是想得到一个提示。我该怎么办?您可以在会话中保存此变量:
Session["roles"] = UserRole;
要从会话中获取它,请执行以下操作:
var roles = (List<string>)Session["roles"];
var角色=(列表)会话[“角色”];
但这不是一个好主意,因为如果某些用户角色将被删除,它将仅在用户注销或会话超时时应用。您可以使用数据库并将信息存储在那里。或者您也可以使用全局变量,然后只访问所需的信息。如果管理员更改了角色,我们将无法更新当前用户的会话。可以删除最大会话数