asp.net 用户验证的方式
- 提问者网友:太高姿态
- 2021-02-17 15:30
- 五星知识达人网友:平生事
- 2021-02-17 15:49
- 1楼网友:荒野風
- 2021-02-17 16:40
一般都用自带的验证机制
首先在config中配置相关的节
//配置身份票,登陆后才可访问
<!--
通过 <authentication> 节可以配置 asp.net 使用的
安全身份验证模式,
以标识传入的用户。
-->
//session的保存的位置为本地
<sessionstate mode="inproc"></sessionstate>
<authentication mode="forms">
//配置必须经过的页面,cookie的 name,缺省页面,存活时间(分)
<forms loginurl="login.aspx" name="hotel" defaulturl="default.aspx" timeout="60">
</forms>
</authentication>
//拒绝匿名用户,否则该安全身份验证模式不起作用
<authorization>
<deny users="?"/>
</authorization>
这样不管他进入那个页面都会去你配置的那个页面去登陆,除非有身份票,在下面就是在用户登陆成功后给她个身份票了,就一句
formsauthentication.setauthcookie(username, true);
//formsauthentication是系统的类这样用户就可以登陆了,这样会自动创建一个非加密的cookie,虽然有时间限制,但安全级别很低如果你还想学习那么就看下边,手写加密cookie类
代码如下:
public class userloginmanager:page
{
/// <summary>
/// 添加用户身份到cookie中,并加密
/// </summary>
/// <param name="username"></param>
public void authenticationusers(string username)
{
formsauthenticationticket tichet = new formsauthenticationticket(1, username, datetime.now, datetime.now.addhours(24), true, "");
string hashticket = formsauthentication.encrypt(tichet);
httpcookie usercookie = new httpcookie(formsauthentication.formscookiename);
usercookie.value = hashticket;
usercookie.expires = tichet.expiration;
usercookie.domain = formsauthentication.cookiedomain;
httpcontext.current.response.cookies.add(usercookie);
}
}