asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

asp.net form验证


发布日期:2021年02月06日
 
asp.net form验证

读书时最常用判断登陆的就是登陆时用cookie或session存储然后每个页面判断是否登陆

这样做每个页面都要判断很麻烦

毕业半年了这半年学会了用类重写事件OnLoad()来这样每个页面继承这个类!这个类里可以判断是否登陆判断权限等等一些操作

可是如果只有登陆验证没有权限其他操作的话!这样用form验证比继承类来得更方便这个也是今天才想到的!由于读书时注重玩结果好多没注意听今天重新学习了下form验证

首先配置webconfig

在systenweb内配置


<authentication mode="Forms">
<forms loginUrl="admin/Loginaspx" defaultUrl="admin/Defaultaspx" timeout=""></forms>
</authentication>
<!
name 属性指定验证所需要的 cookie 的名称默认值是“ASPXAUTH”如果在一个服务器上下挂了多个 Web 应用程序必须重新指定该名称因为每个应用程序都需要唯一的 cookie

loginUrl 属性指定登录用的页面用于提供用户名和密码默认值是“loginaspx”该页面可以和需要提供身份验证才能访问的页面放在同一个目录下(呵我原以为这个页面要放在单独的可公开访问的目录下)

defaultUrl 属性指定登入后跳转到的页面默认值是“defaultaspx”当然你也可以跳转到用户登入前的前一个页面并且这是 NET 的默认实现
timeout cookie过期时间
>

<!Systemweb同级>
<location path="admin">
<systemweb>
<authorization>
<deny users="?"/><拒绝匿名用户>
</authorization>
</systemweb>
</location>

我做的后台单独放在一个文件夹内!这样只要给这个文件夹设置权限就可以如果未登陆而浏览这个文件夹内的任意文件会跳转到登陆页面登陆成功跳转到ReturnUrl也就是你之前访问的页面如果ReturnUrl为空跳转到defaultUrl也就是你配置的默认url

接下来是代码

代码


if (TextBoxText == "adminss" && TextBoxText == "admin")
{
FormsAuthenticationRedirectFromLoginPage(TextBoxText CheckBoxChecked);
//CheckBoxChecked如果为true将会持久保存cookie直到cookie失效
//后面可以接ResponseRedirect(“xxaspx”)会跳转到你指定的页面可是并不可以没有验证就跳转!
//如果没有上面的验证票而直接跳转会失败因为没有建立身份验证票
//ResponseRedirect(ContextRequest["ReturnUrl"]);
//ResponseRedirect("xxaspx");
}
else
ResponseWrite("用户名或密码错误!");

有些页面要根据判断用户是否登陆呈现不同的排版

if(UserIdentityIsAuthenticated)//这个是用来判断用户是否登陆
{
//已登陆;
}
else
{
//未登陆
}

有时还要取用户的用户名显示在页面上

UserIdentityName//获取登陆名其实就是之前FormsAuthenticationRedirectFromLoginPage(TextBoxTextCheckBoxChecked);中的TextBoxText;

好了之后就是退出代码了

FormsAuthenticationSignOut();

               

上一篇:在ASP.NET中实现弹出日历的具体方法

下一篇:构建ASP.NET网站十大必备工具