第二十七讲 ASP.NET身份验证(二)

主要内容
    接上一节
    1. 当用户正常通过Login.aspx登陆页面正常登陆时,FormsAuthenticationFromLogin(string UserName,bool bl)方法却不知道指向何处时,页面就会报错?
    
    解决办法:
        判断页面地址栏的参数ReturnUrl是否为空
        如果不为空:则使用FormsAuthenticationFromLogin(string UserName,bool bl)方法。
        如果为空:则手动发送加密Cookie到客户端,再使用Response.Redirect()方法,定向到站点首页。

        如实现代码:
        if (tbName.Text.Trim() == "admin" && tbPwd.Text.Trim() == "123")
        {
            if (Request.QueryString["ReturnUrl"] != null)
            {
                this.Page.ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), "<script>alert('登陆成功')</script>");
                FormsAuthentication.RedirectFromLoginPage(tbName.Text.Trim(), chkRemember.Checked);
            }
            else {
                FormsAuthentication.SetAuthCookie(tbName.Text.Trim(), chkRemember.Checked);
                Response.Redirect("~/Admin/Index.aspx");
            }

        }
        else
        {
            this.Page.ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), "<script>alert('登陆失败')</script>");
        }

    2. 首页显示欢迎用户字符
        使用的是web.security空间下的User属性下的标识中的用户名,也就是地址栏中ReturnUrl变量的值。
        如:this.Label1.Text = User.Identity.Name;

    3. 注销
        即是将客户端的加密Cookie删除掉。
        如:
            FormsAuthentication.SignOut();
            Response.Redirect("~/Login.aspx");

    4. 讲解VS中的登陆相关的控件的使用
        1. LoginName 就是能显示登陆用户名,如前面的欢迎字符串的显示
        2. LoginStatus 就是登陆状态的操作,登陆、注销动作

        自已测试其它相关控件的使用

    5. web.config代码讲解:
    <syste.web>
        <authorization>//授权配置
            <deny users="?" />拒绝所有匿名用户
            <allow roles="admin" />允许admin角色
            <deny users="*" />拒绝所有用户
        </authorization>
    </syste.web>

    看上面的web.config文件中的授权代码,似乎有点问题,先是拒绝所有匿名用户,再允许admin角色的用户,最后是拒绝所有用户。
    其实这里没有问题的,只是要明白的是,授权的配置中的顺序是很重要的,系统总是按照从前向后逐条匹配方式,执行最先的匹配者。


    6. 常用的标签
        1. 自定义错误配置标签
        <customErrors mode="RemoteOnly"
        //on表示启用自定义错误
        //off表示禁用自定义错误
        //remoteOnly表示只显示远程客户机,本地调试显示正常错误
            defaultRedirect="ErrorPage.htm">
            <error statusCode="404"
            redirect="FileNotFound.htm" />//为对应错误状态码定向一个页面
            //特定错误的错误页,statusCode为状态码,404错误代表页面不存在。
        </customErrors>

        默认VS2010 中是没有这个标签的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值