ASP.NET Mvc Preview 5 演示Demo #2 实现Membership角色权限控制
2008-09-03 22:48
1181 查看
ASP.NET Mvc Preview 5 演示Demo #2 实现Membership角色权限控制
MVC演示Demo系列: http://mike108mvp.cnblogs.com
Demo #1 实现CRUD增删查改:/content/4571368.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】
USE [master]
GO
IF EXISTS (SELECT name FROM sys.databases WHERE name = N'mike108mvp')
DROP DATABASE [mike108mvp]
CREATE DATABASE [mike108mvp]
GO
USE [mike108mvp]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[User](
[UserId] [int] IDENTITY(1,1) NOT NULL,
[UserName] [nvarchar](50) NULL,
[TypeId] [int] NULL,
[Sex] [bit] NULL,
[Age] [int] NULL,
[Career] [nvarchar](50) NULL,
[FileName] [nvarchar](200) NULL,
CONSTRAINT [PK_User] PRIMARY KEY CLUSTERED
(
[UserId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'User', @level2type=N'COLUMN',@level2name=N'UserId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'姓名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'User', @level2type=N'COLUMN',@level2name=N'UserName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'分类' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'User', @level2type=N'COLUMN',@level2name=N'TypeId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'性别' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'User', @level2type=N'COLUMN',@level2name=N'Sex'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'年龄' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'User', @level2type=N'COLUMN',@level2name=N'Age'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'职业' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'User', @level2type=N'COLUMN',@level2name=N'Career'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'附件名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'User', @level2type=N'COLUMN',@level2name=N'FileName'
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】
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增删查改:/content/4571368.html
MVC演示Demo系列: http://mike108mvp.cnblogs.com
Demo #1 实现CRUD增删查改:/content/4571368.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】
USE [master]
GO
IF EXISTS (SELECT name FROM sys.databases WHERE name = N'mike108mvp')
DROP DATABASE [mike108mvp]
CREATE DATABASE [mike108mvp]
GO
USE [mike108mvp]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[User](
[UserId] [int] IDENTITY(1,1) NOT NULL,
[UserName] [nvarchar](50) NULL,
[TypeId] [int] NULL,
[Sex] [bit] NULL,
[Age] [int] NULL,
[Career] [nvarchar](50) NULL,
[FileName] [nvarchar](200) NULL,
CONSTRAINT [PK_User] PRIMARY KEY CLUSTERED
(
[UserId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'User', @level2type=N'COLUMN',@level2name=N'UserId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'姓名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'User', @level2type=N'COLUMN',@level2name=N'UserName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'分类' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'User', @level2type=N'COLUMN',@level2name=N'TypeId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'性别' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'User', @level2type=N'COLUMN',@level2name=N'Sex'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'年龄' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'User', @level2type=N'COLUMN',@level2name=N'Age'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'职业' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'User', @level2type=N'COLUMN',@level2name=N'Career'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'附件名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'User', @level2type=N'COLUMN',@level2name=N'FileName'
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】
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增删查改:/content/4571368.html
相关文章推荐
- ASP.NET MVC Preview 5 演示Demo #7 实现JQuery表单数据验证及JQuery操作Html元素
- ASP.NET MVC 中实现基于角色的权限控制的处理方法
- ASP.NET Mvc Preview 5 演示Demo #3 实现MVC批量上传文件
- ASP.NET MVC 中如何实现基于角色的权限控制
- ASP.NET MVC 中如何实现基于角色的权限控制
- ASP.NET Mvc Preview 5 演示Demo #1 实现CRUD增删查改
- ASP.NET MVC 中如何实现基于角色的权限控制
- ASP.NET Mvc Preview 5 演示Demo #3 实现MVC批量上传文件
- ASP.NET MVC 中如何实现基于角色的权限控制
- ASP.NET Mvc Preview 5 演示Demo #4 实现RadioButtonList与DropDownList应用
- ASP.NET Mvc Preview 5 演示Demo #4 实现RadioButtonList与DropDownList应用
- ASP.NET MVC 中实现基于角色的权限控制的处理方法
- ASP.NET MVC使用ActionFilterAttribute实现权限限制的方法(附demo源码下载)
- ASP.NET MVC实现权限控制
- 在ASP.NET MVC中实现基于URL的权限控制
- 在ASP.NET MVC中实现基于URL的权限控制
- ASP.net MVC 基于角色的权限控制系统的实现
- 在ASP.NET MVC中实现基于URL的权限控制
- ASP.NET MVC中权限控制的简单实现
- ASP.net MVC 基于角色的权限控制系统的实现