ASP.NET中的forms验证

空扰寡人 提交于 2020-03-23 16:35:52

ASP.NET的安全认证:Windows验证 (默认)、none、Passport、Forms

Froms验证

一、开启Forms验证

1、打开web.config配置文件 

2、找到<authentication mode="Windows"/> ,修改为

<authentication mode="Forms">      

<forms loginUrl="login.aspx" defaultUrl="default.aspx" name=".ASPX"></forms>

</authentication>

即将login.aspx设为默认登录页,如果系统检测到用户未登录,则自动跳转到login.aspx页面;默认主页为:default.aspx;后缀名为:.ASPX;

添加<authorization>,设置访问权限

<authorization>
<deny users="?" ></deny> <!--问好代表匿名用户,*代表阻止所有用户-->
</authorization>

如果使用Forms验证,就需要用FormsAuthentication类来实现验证过程,FormsAuthentication类经常和Membership类结合使用,进行用户的登录验证。

创建身份验证 Cookie

SetAuthCookie ( string userName, bool createPersistentCookie ) ,第二个参数:若要创建持久 Cookie(跨浏览器会话保存的 Cookie),则为 true;否则为 false。

string username = TextBox1.Text.Trim();
string password = TextBox2.Text.Trim();
if(登陆成功)
        {
           FormsAuthentication.SetAuthCookie(username,false);
           Response.Redirect("default.aspx");                            //登录成功的话,跳转到主页
        }

 

返回原始请求url

RedirectFromLoginPage ( string userName, bool createPersistentCookie )

将经过身份验证的用户重定向回最初请求的 URL 或默认 URL。第二个参数:若要创建持久 Cookie(跨浏览器会话保存的 Cookie),则为 true;否则为 false。

string username = TextBox1.Text.Trim();
string password = TextBox2.Text.Trim();
 if(登陆成功)
        {
           FormsAuthentication.RedirectFromLoginPage(username, false);       //登录成功的话,跳转到原始请求页
        }

 

删除 Forms 身份验证

SignOut () ;通常用于注销用户或用户退出登录。

login.aspx.cs中登录按钮的事件代码:

 protected void Button1_Click(object sender, EventArgs e)
    {
        string username = TextBox1.Text.Trim();
        string password = TextBox2.Text.Trim();

        FormsAuthentication.RedirectFromLoginPage(username, false);//自动转到原始请求页


        //跳转到网站首页
        //FormsAuthentication.SetAuthCookie(username,false);
        //Response.Redirect("default.aspx");
    }

default.aspx.cs中的代码:

1、label1标签显示用户名:Label1.Text = Context.User.Identity.Name;//在cookie中提取用户名

2、注销登录按钮:

FormsAuthentication.SignOut();

FormsAuthentication.RedirectToLoginPage();//退出后重定向到登录页,这两行是配合使用的。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!