使用ASP.Net MVC5进行简单登录



我一直在努力了解OWIN和Identity,让它能很好地与我的现有应用程序配合使用。这个应用程序是用Plain ASP.Net编写的,我想把它移植到MVC中,以便更好地组织它。该应用程序已经建立了包括"用户"表在内的数据库,因此不能使用"标识"表。我使用Identity遇到的障碍是它需要电子邮件,而我的系统不应该要求用户发送电子邮件。在尝试了几乎所有的东西(几天来几乎阅读了关于这个主题的每一个答案)之后,我得出结论,完成它需要更多的时间,这就引出了我的问题。

作为一个PHP爱好者(不久前跳到ASP.Net),我可以在10分钟内轻松登录,现在我需要一个类似的东西,一个类似的东西

$user = User::findByUserName($username); //somehow here I find user from database
if($user!=null)
{
    $_SESSION['isLoggedIn'] = true;
    $_SESSION['fullname'] = $user->fullName;
}
else
{
    //redirect to login with error
}

我在MVC5中找不到会话类。这可能吗?如果没有,有没有一个简单的途径来解决我的问题?

最常见的缓存方式是将其放置在"全局"服务器缓存中或放置在会话中。还有其他保存状态的方法,我建议您考虑其他方法,因为下面的技术使用System.Web名称空间System.Web将不会包含在MVC6中

全局缓存

//Save User
System.Web.HttpContext.Current.Cache.Insert(
                       "CurrentUser", 
                        User, 
                        null, 
                        System.Web.Caching.Cache.NoAbsoluteExpiration, 
                        new TimeSpan(0,20,0), 
                        System.Web.Caching.CacheItemPriority.Normal, 
                        null);       
//Get User   
User user=(User)System.Web.HttpContext.Current.Cache["CurrentUser"];

会话缓存

//Save User   
HttpContext.Current.Session.Add("CurrentUser",User); 
//Get User
User=(User)HttpContext.Current.Session["CurrentUser"];

您基本上可以告诉owin-manuelly在不使用身份信息的情况下对用户进行身份验证(我也不喜欢,至少对于小项目来说是这样)。然后你可以很容易地使用默认的授权站以下是教程:OWIN AUTH

相关内容

  • 没有找到相关文章

最新更新