博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVC3 角色管理|MVC3权限设计
阅读量:5297 次
发布时间:2019-06-14

本文共 3026 字,大约阅读时间需要 10 分钟。

View:

 

@using (Html.BeginForm()) {    
帐户信息
@Html.LabelFor(m => m.LoginID)
@Html.TextBoxFor(m => m.LoginID) @Html.ValidationMessageFor(m => m.LoginID)
@Html.LabelFor(m => m.LoginPwd)
@Html.PasswordFor(m => m.LoginPwd) @Html.ValidationMessageFor(m => m.LoginPwd)
@*
@Html.CheckBoxFor(m => m.RememberMe) @Html.LabelFor(m => m.RememberMe)
*@

}

 

Controller:

 

[HttpPost]        public ActionResult LogOn(Octopus.Monitor.Storage.Model.UserInfo model, string returnUrl)        {            if (ModelState.IsValid)            {                //自定义方法,检查登录用户是否存在                 DataSet dataSet = Octopus.Monitor.Storage.Mysql.DAL.UserInfoDAL.CheckUser(model);                if (dataSet.Tables.Count > 0 && dataSet.Tables[0].Rows.Count > 0)                {                    //如果存在,则根据用户ID去查询用户的角色,然后将角色类型存放于FormsAuthenticationTicket                     DataSet roleDataSet = Octopus.Monitor.Storage.Mysql.DAL.R_UserInfo_Role.GetUserRole(Convert.ToInt32(dataSet.Tables[0].Rows[0]["ID"]));                    FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(                       1,                       model.LoginID,                       DateTime.Now,                       DateTime.Now.Add(FormsAuthentication.Timeout),                       true,                       roleDataSet.Tables[0].Rows[0]["RoleID"].ToString()                       );                    HttpCookie cookie = new HttpCookie(                        FormsAuthentication.FormsCookieName,                        FormsAuthentication.Encrypt(ticket));                    Response.Cookies.Add(cookie);                    if (!String.IsNullOrEmpty(returnUrl)) return Redirect(returnUrl);                    else return RedirectToAction("Index", "Home");                }                else                {                    ModelState.AddModelError("", "提供的用户名或密码不正确。");                }            }            // 如果我们进行到这一步时某个地方出错,则重新显示表单            return View(model);        }

 

Global.asax:

public override void Init(){    AuthorizeRequest += new EventHandler(MvcApplication_AuthorizeRequest);}protected void MvcApplication_AuthorizeRequest(object sender, EventArgs e){    FormsIdentity formIdentity = null;    var identity = Context.User.Identity;    if (identity != null)        formIdentity = identity as FormsIdentity;    if (formIdentity != null && formIdentity.IsAuthenticated)    {        var roles = formIdentity.Ticket.UserData.Split(',');        Context.User = new GenericPrincipal(formIdentity, roles);    }}

 

 

 

转载于:https://www.cnblogs.com/webyu/archive/2013/04/12/3015905.html

你可能感兴趣的文章
关于百度地图iOS中 paopaoView 警告的处理方法
查看>>
电子产品自动搜索比价系统设计与实现 项目愿景与范围
查看>>
Linux内核模块自动加载机制 .
查看>>
第二次 过程性考核
查看>>
PID optimizer
查看>>
Django 1.6 CBVs
查看>>
Fitnesse用系列三
查看>>
游戏碰撞OBB算法(java代码)
查看>>
Scriptcase演示程序,现在,他们使用SC多么简单的开发系统
查看>>
ZOJ 3623 Battle Ships 简单DP
查看>>
asp.net webconfig下的httphandler模块配置
查看>>
数据库Schema两种含义~~
查看>>
堆排序算法
查看>>
arcgis_server_address_note
查看>>
Bitmap的recycle问题
查看>>
CMYK
查看>>
使用bootstrap制作网站导航
查看>>
新笔记
查看>>
windows环境下把Python代码打包成独立执行的exe可执行文件
查看>>
PHP底层的运行机制与原理
查看>>