如何使用asp.net-mvc创建基本用户登录?

时间:2014-02-20 17:15:30

标签: c# asp.net-mvc forms-authentication

我将使用LINQ从头开始使用C#和asp.net构建实体/ MVC框架。

我们选择不使用内置会员资格授权。

我想弄清楚的是,如果我的所有基地都被覆盖,或者我忘记了什么。或者,如果我过度复杂化了。

以下是我设想的方式。

我创建了一个包含用户信息,用户名和密码的表。将其移动到我的代码中的模型。

我在代码中创建了一个身份验证服务。然后,当他们登录时,我将时间添加到他们登录的表中,然后在每个页面上访问我检查时间,如果30分钟已经过去,我将它们记录下来并将它们放回登录页面,否则我将它们带到他们要求的页面。

这是一个可行的方法吗?我真的需要为每个页面控制器添加身份验证检查吗?

基本上是哪个。 Services.Authentication.VerifyLogin()

如果超过30分钟,请将更新表LoggedIn注销为false。如果在30分钟内。将LoggedInTime更新为当前时间。

2 个答案:

答案 0 :(得分:2)

我认为你想要的是使用MVC身份验证cookie,而不是检查你的数据库他们登录的时间:

// sign in
FormsAuthentication.SetAuthCookie(username, false);
// sign out
FormsAuthentication.SignOut();

参考。 Custom Authentication and ASP.NET MVC

参考。 http://www.codeproject.com/Articles/578374/AplusBeginner-27splusTutorialplusonplusCustomplusF

另外,这是关于MVC 4中自定义身份验证的好文章:

http://www.codeproject.com/Articles/601687/ASP-NET-MVC-4-Forms-Authentication-Customized

答案 1 :(得分:0)

如果您正在使用MVC,则不必“向每个页面控制器添加身份验证检查”,您只需添加 [授权] 属于需要在控制器中进行身份验证的操作的操作上的属性。

这是一个可能帮助您的授权示例:
http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-7