加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

asp.net Forms身份验证和基于角色的权限访问

发布时间:2021-07-20 19:33:43 所属栏目:编程 来源:互联网
导读:Forms身份验证用来判断是否合法用户,当用户合法后,再通过用户的角色决定能访问的页面。


        protected void btnLogin_Click(object sender, EventArgs e)
        {    
            //Forms身份验证初始化
            FormsAuthentication.Initialize();
            //验证用户输入并得到登录用户,txtName是用户名称,txtPassword是登录密码
            UserModel um = ValidUser(txtName.Text.Trim(),txtPassword.Text.Trim());
            if (um != null)
            {
             //创建身份验证票据
             FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
                                            um.Name,
                                            DateTime.Now,
                                            DateTime.Now.AddMinutes(30),
                                            true,
                                            um.Roles,//用户所属的角色字符串
                                            FormsAuthentication.FormsCookiePath);
             //加密身份验证票据
             string hash = FormsAuthentication.Encrypt(ticket);
             //创建要发送到客户端的cookie
             HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);
             if (ticket.IsPersistent)
             {
                cookie.Expires = ticket.Expiration;
             }
             //把准备好的cookie加入到响应流中
             Response.Cookies.Add(cookie);

             //转发到请求的页面
             Response.Redirect(FormsAuthentication.GetRedirectUrl(um.Name,false));
            }
            else
            {
             ClientScriptManager csm = this.Page.ClientScript;
             csm.RegisterStartupScript(this.GetType(), "error_tip", "alert('用户名或密码错误!身份验证失败!');", true);
            }
        }    
        //验证用户
        private UserModel ValidUser(string name, string password)
        {
            return new UserService().Validate(name, password);
        }


    4、给网站添加处理程序Global.asax,其中通用身份验证代码如下:

复制代码 代码如下:

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读