Froms认证

if (this.Txt_UserName.Text == "Admin" && this.Txt_Password.Text == "123456")
            {
              
                var ticket = new System.Web.Security.FormsAuthenticationTicket(1, this.Txt_UserName.Text, DateTime.Now, DateTime.Now.AddDays(1), false, "USER");
                var encryptedTicket = System.Web.Security.FormsAuthentication.Encrypt(ticket);

                if (Request.Cookies[System.Web.Security.FormsAuthentication.FormsCookieName] != null)
                    Request.Cookies.Remove(System.Web.Security.FormsAuthentication.FormsCookieName);

                var loginIdentify = new HttpCookie(System.Web.Security.FormsAuthentication.FormsCookieName);
                loginIdentify.Expires = DateTime.Now.AddDays(1);
                loginIdentify.Value = encryptedTicket;

                Response.AppendCookie(loginIdentify);
                if (!String.IsNullOrEmpty(Request.QueryString["ReturnUrl"]) && !Request.QueryString["ReturnUrl"].ToLower().Contains("profile"))
                    Response.Redirect(Server.UrlDecode(Request.QueryString["ReturnUrl"]));
                else
                    Response.Redirect(System.Web.Security.FormsAuthentication.DefaultUrl);

            }

//System.Web.Security.FormsAuthentication.SignOut();退出


//Page.User.Identity.Name获取用户名


// if (User.Identity.IsAuthenticated)判断是否通过认证



//web.config配置


    <authentication mode="Forms">
      <forms loginUrl="Login.aspx" name=".ASPXAUTH" timeout="43200" defaultUrl="WebForm1.aspx" protection="All" path="/" requireSSL="false" slidingExpiration="true" enableCrossAppRedirects="false"  />
    </authentication>
    <anonymousIdentification enabled="true" />
    <authorization>
      <deny users="?"></deny>
    </authorization>





在一个ASP.NET网站中,有些页面会允许所有用户访问,包括一些未登录用户,但有些页面则必须是已登录用户才能访问,还有一些页面可能会要求特定的用户或者用户组的成员才能访问。这类页面因此也可称为【受限页面】,它们一般代表着比较重要的页面,包含一些重要的操作或功能。

为了保护受限制的页面的访问,ASP.NET提供了一种简单的方式:可以在web.config中指定受限资源允许哪些用户或者用户组(角色)的访问,也可以设置为禁止访问。

比如,网站有一个页面:MyInfo.aspx,它要求访问这个页面的访问者必须是一个已登录用户,那么可以在web.config中这样配置:

<location path="MyInfo.aspx">
    <system.web>
        <authorization>
            <deny users="?"/>
        </authorization>
    </system.web>
</location>

为了方便,我可能会将一些管理相关的多个页面放在Admin目录中,显然这些页面只允许Admin用户组的成员才可以访问。 对于这种情况,我们可以直接针对一个目录设置访问规则:

<location path="Admin">
    <system.web>
        <authorization>
            <allow roles="Admin"/>
            <deny users="*"/>
        </authorization>
    </system.web>
</location>

这样就不必一个一个页面单独设置了,还可以在目录中创建一个web.config来指定目录的访问规则,请参考后面的示例。

在前面的示例中,有一点要特别注意的是:
1. allow和deny之间的顺序一定不能写错了,UrlAuthorizationModule将按这个顺序依次判断。
2. 如果某个资源只允许某类用户访问,那么最后的一条规则一定是 <deny users="*" />

在allow和deny的配置中,我们可以在一条规则中指定多个用户:
1. 使用users属性,值为逗号分隔的用户名列表。
2. 使用roles属性,值为逗号分隔的角色列表。
3. 问号 (?) 表示匿名用户。
4. 星号 (*) 表示所有用户。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值