笨蛋今天也来谈谈Form验证和网页浏览的权限设置

偶的第3篇 博客上线啦!!! 呼呼。。

 

 

今天上班 闲来无事。。浏览些博客园的高手们留下的足迹。。

突然眼前一亮。。。哦 看到了Form验证。。咦 。。这儿 好像我也有做过哦。。

于是乎。。心血来潮。。再来做骗玩玩吧。。

好有了想发 就开搞啊!!

 

恩建工程。建了个简单的页面。。也 没什么就是登陆的页面。。。然后 再建个无关紧要的页面。。就可以测试了

大家都知道。。在VS上 你可以直接选中要运行的页面进行 运行。。显示。。。

然而。有些时候。。我们要访问页面时。。必须经过 一些页面。。如登陆页面啦 等等。。

所以这就出现了 想要无论 访问哪个页面。。必须先登陆了 才可以访问的 想发。。

好 看看 偶偶滴。测试吧。。

建了个页面 Login.aspx 页面放了2个Lable  表示 用户名和密码。。人后两个 TextBox  分别 对应用户名和密码 和一个按钮

现在就开始做登陆验证了‘

首先 是配置下配置文件吧。。

在Web.config 文件的

System.Web 借点下这样配置:

 

 

<authentication mode="Forms">
   <forms defaultUrl="~/admin/admin.aspx" loginUrl="~/Default.aspx" name="aaa">
    <credentials passwordFormat="Clear">
     <user name="admin" password="1234"/>
     <user name="Login" password="aa"/>
     <user name="Vip" password="bb"/>
    </credentials>
   </forms>

</authentication>

 

这样Form验证的配置就Ok了

在这配置了 验证方式 为Form。。默认页面为:"~/admin/admin.aspx  启动页面为Default.aspx

并设置了页面登陆的 用户名和密码。。(当然做项目时不要这样用)

下面是在登陆页面的额.cs 文件里 做验证了

如:

 protected void btnLogin_Click(object sender, EventArgs e)
        {

 

            if (FormsAuthentication.Authenticate(txtUserName.Text, txtPassWord.Text))
            {
                FormsAuthentication.RedirectFromLoginPage(txtUserName.Text, false);
            }
            else
            {
                lblshow.Text = "你尚未登录或你的账号不存在";
            }

            
        }

这里需要引用 命名空间System.Web.Security

这里的验证和Web.config 对应 

好了 输入 了正确的户名和密码可以进行等了。。但是 我还想做的是对另一个页面 浏览的限制。。

那就再 建个文件夹(admin)吧。。在文件里在个页面admin.aspx 好。。就对你小样进行浏览权限的设置。。(没办法。。谁叫她长滴漂亮呢,就她了。嘿嘿)

要对这个页面进行权限设置。。那就还要个 web.config 配置文件啦。好吧。加吧。。

恩 Ok 好了 admin 文件下的 web.config 配置:

在System.web 下


      <authorization>
        <allow roles="User"/>
        <deny users="*"/>
      </authorization>

这样就允许啦 角色 user 的访问。。出了user 角色 其他用户是没有这个权限滴。。

当到了这个地步我有点郁闷啦!! 允许几个用户和哪一个用户 简单。。但这角色吗?

我怎么把用户添加到角色中呢。。这点 我忘了 。。

想了半天 想起来啦。

先看看吧。。

先添加了Global.aspx 文件。。对就是这个罪魁祸首。。害我想了很久。。(10来分钟呢)

这个文件自动继承 System.web.HttpApplication

 

好了 。。关键到了。。

嗯哼。。在这个里面开始挂事件啦。。那 就它。。FormsAuthentication_Authenticate(Object sender, FormsAuthenticationEventArgs e)。。(兄弟们超家伙 打扁他。如果有兴趣的朋友可以看看VS的帮助看看这是什么东西)

具体做法:

  protected void FormsAuthentication_Authenticate(Object sender, FormsAuthenticationEventArgs e)
        {
            if (e.Context.Request.Cookies[FormsAuthentication.FormsCookieName] != null)
            {

               FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(e.Context.Request.Cookies[FormsAuthentication.FormsCookieName].Value);
               if (string.Equals(ticket.Name, "admin", StringComparison.OrdinalIgnoreCase))
               {
                   e.User = new GenericPrincipal(new GenericIdentity(ticket.Name), new string[] { "User" });
               }
            }
        }

就是一个 票验证。。将用admin 登陆的用户 加到user 的角色里去。。

好了

添加到了。。

那么他什么时候开始添加呢?

恩 Ok 再在建个类 来规定他。。

嗯哼  就叫它 PostHttpModule 这个类呢 实现IHttpModule 了这个接口 。。

然后在他的Init()方法里去做添加。。

具体如下:

 public void Init(HttpApplication context)
        {
            context.PostAuthenticateRequest += new EventHandler(Authenticate);
        }

        private void Authenticate(object sender, EventArgs e)
        {
            HttpApplication application = (HttpApplication)sender;

            if (application.Context.User.Identity.Name == "admin")
            {
                application.Context.User = new GenericPrincipal(application.Context.User.Identity, new string[] { "User" });
            }

        }

 

好了 这些 搞完了 。。来看看 是否成功。。

嗯哼。。很高兴成功了。。(嘿嘿。。。偷偷的高兴下。。)

 

OK 啦   本次介绍 介绍啦。。

再次声明 本人也是新手。。(刚刚上班呢!!555 被残酷的领导剥削着)

写的有什么地方不对 。请大家多多指教。。不过不要讥讽和嘲笑。。谢谢。。

 

转载于:https://www.cnblogs.com/xzySoft/archive/2010/04/30/1725349.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值