我需要专家的帮助!
我编写了ASP.NET MVC 4 Intranet应用程序。我使用Windows身份验证,域名通过User.Identity.Name.
我有一个配置数据上下文的数据库,其中有关用户的更完整信息:姓氏,名字,电子邮件等。以及列表用户访问组。
需要确保用户打开程序,从数据库接收到所需的访问权限,他的名字出现在页面的右上角。
现在我已经意识到使用OWIN Asp.Net Identity。我创建了一个继承其他控制器的基本控制器,它为用户和他的SignIn命令 CurrentUser 方法:
protected ApplicationUser CurrentUser
{
get
{
var curUser = AppUserManager.FindByName(User.Identity.Name);
if (curUser != null)
SignInManager.SignIn(curUser, true, true);
else
curUser = new ApplicationUser();
return curUser;
}
}
protected ApplicationSignInManager SignInManager
{
get
{
return HttpContext.GetOwinContext().Get<ApplicationSignInManager>();
}
}
据我所知,这些操作是不必要的,当你每次需要拖入数据库时刷新页面,用户接收并制作SignIn,这是不必要的。
我确信你可以在不使用Asp.Net Identity的情况下实现所有目标。例如,通过展开IPrincipal User
,将他添加到字段名称,这在显示页面时需要,并在数据库中添加一次Roles并将所有内容保存在Cookie中。
请帮帮我!抱歉我的英语不好......