您的位置:首页 > 编程语言 > ASP

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: