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

MVC演示Demo系列: http://mike108mvp.cnblogs.com

Demo #1 实现CRUD增删查改:http://www.cnblogs.comhttp://www.cnblogs.com/http://www.cnblogs.com//mike108mvp/archive/2008/08/31/1280689.html

ASP.NET MVC QQ交流群:1215279 欢迎对 ASP.NET MVC 感兴趣的朋友加入

这个演示项目实现了如何在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/Release/ProjectReleases.aspx?ReleaseId=16775

【Step By Step 演示步骤】

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

mike108mvp数据库sql脚本

2、下载本演示源码:http://files.cnblogs.com/mike108mvp/Mike108Demo02.rar
Visual Studio 2008 双击下载的演示源码中的 Mike108Demo.sln 解决方案文件,打开源码,按F5运行。【ok】

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

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

P5_Demo02_1.jpg

5、修改web.config连接字符串为:【ok】
<connectionStrings>
 <add name="ApplicationServices" connectionString="Data Source=(local);Initial Catalog=mike108membership;Integrated Security=True" providerName="System.Data.SqlClient"/>
 <add name="mike108mvpConnectionString" connectionString="Data Source=(local);Initial Catalog=mike108mvp;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>

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】

下载本演示源码:http://files.cnblogs.com/mike108mvp/Mike108Demo02.rar

MVC演示Demo系列: http://mike108mvp.cnblogs.com

Demo #1 实现CRUD增删查改:http://www.cnblogs.comhttp://www.cnblogs.com/http://www.cnblogs.com//mike108mvp/archive/2008/08/31/1280689.html


推荐.NET配套的通用数据层ORM框架:CYQ.Data 通用数据层框架
新浪微博粉丝精灵,刷粉丝、刷评论、刷转发、企业商家微博营销必备工具"