ASP.NET Mvc Preview 5 演示Demo #2 实现Membership角色权限控制

上一篇:Demo #1 实现CRUD增删查改

这个演示项目实现了如何在MVC中应用微软自带的Membership角色权限控制模块,实现新用户注册、登陆、修改密码,及Action的[Authorize]权限控制功能。【ok】

开发环境:Visual Studio 2008 SP1 + ASP.NET MVC Preview 5 + Linq To Sql + SQL Server 2005

ASP.NET MVC Preview 5 下载地址: http://www.codeplex.com/aspnet/R ... spx?ReleaseId=16775

【Step By Step 演示步骤】

1、SQL Server 2005 执行下面的Sql查询脚本。该Sql脚本将生成一个新的mike108mvp数据库。【ok】


 附件: 您所在的用户组无法下载或查看附件

mike108mvp数据库sql脚本

Code


2、下载本演示源码:
 附件: 您所在的用户组无法下载或查看附件
Visual Studio 2008 双击下载的演示源码中的 Mike108Demo.sln 解决方案文件,打开源码,按F5运行。【ok】

3、点击右上角的“重置数据”链接,生成示例数据。【ok】

4、双击打开 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 目录中的aspnet_regsql.exe 文件,手动输入数据库名:mike108membership 生成微软自带的membership数据库。【ok】



5、修改web.config连接字符串为:【ok】

Code


6、Visual Studio 2008 打开源码,按F5运行。点击右上角的Login链接,再点击登陆页面中的 register 链接,进入注册页面,任意注册一个用户(注意:用户密码至少要6个字符)。注册后,会自动登陆,你会发现右上角已经出现了“Welcome 用户名! Logout”。登陆后,可以修改自己的登陆密码。【ok】


 附件: 您所在的用户组无法下载或查看附件

7、Controllers/UsersController.cs 中的public ActionResult UserMembership() 前面加入[Authorize] 即可实现登陆后才能查看。点击右上角Logout链接,退出登陆,再点击右上角的UserMembership链接,提示需要登陆后才能查看。登陆后,默认返回主页。再次点击右上角的UserMembership链接则可以进入查看。下面将实现登陆后,让它自动返回来源页的功能。【ok】

8、点击右上角的UserMembership链接,提示需要登陆,登陆后无法自动返回原Action的解决方法。【ok】
打开Controllers/AccountController.cs 修改默认的  public ActionResult Login(string username, string password, bool? rememberMe)
1]增加 string returnUrl 参数。
2]增加 ViewData["ReturnUrl"] = returnUrl;
3]修改 return RedirectToAction("Index", "Home"); 为
return (string.IsNullOrEmpty(returnUrl) ? (ActionResult)RedirectToAction("Index", "Home") : Redirect(returnUrl));     
4]打开Views/Account/Login.aspx 修改默认的 <form method="post" action="<%= Html.AttributeEncode(Url.Action("Login")) %>"> 为:
<form method="post" action="<%= Html.AttributeEncode(Url.Action("Login",new {returnUrl=ViewData["ReturnUrl"]})) %>">

9、Visual Studio 2008 的Project菜单 -> ASP.NET Configuration 选项,打开微软自带的Membership可视化管理工具。可以用它来创建角色、管理用户等。【ok】




(文/mike108mvp  出处/博客园)

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [Asp.Net] 的这些文章也感兴趣:

LZW算法的 C#实现
如何解决ASP.NET中中文不能正常显示问题?
使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
ViewState初探
将上传图片打上防伪图片水印并写入数据库
asp.net 控件开发(一):显示控件内容
CodeFile、Src、Codebehind三者的差别解释
给初学.net的新手您几点建议
.net 2.0 rest 实现
ASP.NET1.1新特征防止Script攻击