- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章[Asp.Net MVC4]验证用户登录实现实例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
最近我们要做一个仿sina的微博,碰巧的是我最近在学习mvc,就想用mvc技术实现这个项目.
既然是微博,那不用想也应该知道肯定要有用户登陆,但是和常规的asp.NET登陆又不一样,以下是我一下午+一晚上的研究成果~~~ 。
首先,建好数据库以及表,这就不用说了吧.
下面说一下主要的结构 。
控制器:
HomeController 这是主页的控制器 。
LoginController 这是登陆的控制器 。
类:
CDBTemplate.cs 这是数据库数据对应的类,里边描述的是数据库的结构 。
////////////////////////////////////////////我是分割线\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 。
首先在HomeController 控制器的返回函数 。
1
|
public
ActionResult Index(){...}
|
前面加上:
1
|
[Authorize(Roles =
"admins"
)]
|
就是这样:
1
2
3
4
5
|
[Authorize(Roles =
"admins"
)]
public
ActionResult Index()
{
...
}
|
这条语句的意思是在这加上一个权限验证,只允许用户角色是admins的用户访问 。
然后再web.config文件里添加:
1
2
3
|
<
authentication
mode
=
"Forms"
>
<
forms
loginUrl
=
"~/Login"
timeout
=
"2880"
/>
</
authentication
>
|
这些的意思是给整个网站增加用户验证,指向的登陆界面是login这个控制器 。
CDBTemplate.cs文件里的一个类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public
class
LogOnModel
{
[Required]
[Display(Name =
"用户名"
)]
public
string
UserName {
get
;
set
; }
[Required]
[DataType(DataType.Password)]
[Display(Name =
"密码"
)]
public
string
Password {
get
;
set
; }
[Display(Name =
"下次自动登陆"
)]
public
bool
RememberMe {
get
;
set
; }
}
|
然后为LoginController 控制器的默认返回函数增加一个视图Index.cshtml,在页面里面加上下面的代码:
1
2
3
4
5
6
7
8
9
10
11
|
@model Weibo.Models.LogOnModel
//LogOnModel 是CDBTemplate.cs文件里的一个类
@
using
(Html.BeginForm(
"Login"
,
"Login"
,FormMethod.Post)) {
@Html.TextBoxFor(m => m.UserName)
@Html.ValidationMessageFor(m => m.UserName,
"请输入用户名!"
,
new
{style=
"color: #f00"
})
@Html.PasswordFor(m => m.Password)
@Html.ValidationMessageFor(m => m.Password,
"请输入密码!"
,
new
{style=
"color: #f00"
})
@Html.CheckBoxFor(m => m.RememberMe)
@Html.LabelFor(m => m.RememberMe)
@Html.ActionLink(
"忘记密码"
,
"forgotpwd"
,
null
,
new
{@
class
=
"rt"
,target=
"_blank"
})
<input type=
"submit"
value=
"登陆微博"
/>
}
|
在上面的代码里Html.BeginForm("Login","Login",FormMethod.Post)方法的第一个参数的意思是指定要调用的控制器的方法的名字,第二个参数的意思是控制器的名字,第三个参数的意思是用什么方法把表单提交给服务器,这里我们为了安全,选择用post方式提交.
然后在LoginController 控制器中增加这么一个方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
[HttpPost, ActionName(
"Login"
)]
public
void
Login(FormCollection collection)
{
object
obj = SqlHelper.ExecuteScalar(
"select UserId from CDBUsers where UserName=@uname and Password=@pwd"
,
new
SqlParameter(
"@uname"
, collection[0]),
new
SqlParameter(
"@pwd"
, Weibo.Models.Myencrypt.myencrypt(collection[1])));
if
(obj !=
null
)
{
FormsAuthenticationTicket authTicket =
new
FormsAuthenticationTicket(
1,
collection[0],
DateTime.Now,
DateTime.Now.AddMinutes(30),
false
,
"admins"
);
string
encryptedTicket = FormsAuthentication.Encrypt(authTicket);
System.Web.HttpCookie authCookie =
new
System.Web.HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
System.Web.HttpContext.Current.Response.Cookies.Add(authCookie);
}
Response.Redirect(
"~/"
);
}
|
好了,搞定了~~~~ 。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:http://blog.csdn.net/hsppl/article/details/7396526/ 。
最后此篇关于[Asp.Net MVC4]验证用户登录实现实例的文章就讲到这里了,如果你想了解更多关于[Asp.Net MVC4]验证用户登录实现实例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我试图对 ASP.Net MVC 有一个高层次的理解,我开始意识到它看起来很像原始的 ASP 脚本。过去,我们将“模型”/业务逻辑代码组织到 VBScript 类或 VB COM 组件中。 当然,现在
我已经搜索了一段时间,但似乎找不到答案。 我想在我的旋转木马中显示一个计数器,左边是当前项目(工作),左边是项目总数。 我的代码:
. 最佳答案 Scott Gu 称这些为代码块。这就是我的看法。 http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax
我有一个使用 Visual Studio 2010/.net 4/VB 制作的网站。 我真的很喜欢我发现的 FAQ 系统的布局,因为它很简单,但它是经典的 asp。所以,显然,我不能包括我的母版页布局
好吧,对于你们许多人来说,这个问题可能有一个非常明显的答案,但它让我难住了。 我有一个 asp.net Web 表单,上面有两个控件(嗯,不止这两个,但我们将重点关注这些) - 第一个是 asp:dr
当我将 ASP.NET 复选框控件设置为 asp.net 更新面板的异步回发触发器时,EventName 属性是什么? 最佳答案 我相信它是 CheckedChanged。 关于asp.net - a
我有一个用经典 asp 编写的(巨大的)网站。现在我必须切换到 vb.net (razor)。有没有办法将这两个结合起来直到切换完成? 有没有办法让应用程序与经典的 asp 和 vb.net 一起工作
I am creating a products page, where the user selects an option in a radiobuttonlist for example, an
我最近将一个经典的 ASP 应用程序转换为 ASP.NET 3.5,但我觉得我的经典 ASP 版本要快一些(我不知道可能买家会后悔)。 所以你们能帮我解决这个问题吗,让我知道哪个更快,asp、asp.
从本周开始,我被要求开始学习如何使用 ASP 开发网站。我通过 XNA 对 C# 有一定的经验,所以这部分对我来说并不是什么麻烦。 我一直在关注Music Store Tutorial这需要我设置一个
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
我想将一些表单变量发布到经典 ASP 页面中。我不想改变经典的 ASP 页面,因为需要完成大量的工作,以及消耗它们的页面数量。 经典的 ASP 页面需要将表单变量 Username 和 Userpas
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
在某种程度上,这可能是一个异端问题。我们有一个大型站点,其中许多页面仍在ASP中。通常,并没有真正动态的,而是包括(通过SSI或Server.Execute)定期重新生成的HTML块。看起来好像是一个
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
我有一个遗留的 ASP 应用程序——在不久的某个时候——需要迁移到 ASP.Net 2.0(以与也在 2.0 中的其他应用程序兼容)。 对于这类事情是否有最佳实践,即作为第一步将当前 html、vbs
我目前在一家公司工作,该公司使用 ASP.NET Webforms 和旧 ASP 页面的组合进行 Web 开发。这对于他们当前的项目来说效果很好,但我想说服/建议他们切换到 ASP.NET MVC,因
我有一个经典的 asp 应用程序。我想将该页面的竞赛表格发布到 Asp.Net 表格。原因是我想在进入数据库之前使用我在 Asp.Net 页面中内置的大量逻辑进行验证,而我对 asp 不太了解。更不用
我知道在 ASP.NET MVC 中,您可以拥有移动 View 并执行类似 Index.mobile.cshtml 的操作。和 _Layout.mobile.cshtml并且服务器知道将这些 View
我需要从一些服务器端 c#.net 代码中调用经典 asp 页面上的 VBscript 函数 - 有谁知道一种干净的方法来做到这一点?在 .net 中重写函数不是一种选择。 我会再解释一下这个问题..
我是一名优秀的程序员,十分优秀!