asp.net安全身份验证
asp.net本身有一套安全身份验证,可以通过配置web.config和使用asp.net的内置函数实现。如web.config配置:
<system.web>
<authentication mode="Forms">
<forms name=".ASPXAUTH" loginUrl="~/login.aspx" defaultUrl="~/wapDefault.aspx" timeout="30" path= "/">
</forms>
</authentication>
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>
</system.web>
loginUrl:登录页面
defaultUrl:默认通过认证后跳转的页面
deny users=”?”:禁止匿名用户
allow users=”*”:允许所有用户
当配置以上节后,每次请求页面时,服务器会检查用户是否已登录,如果还没有登录就会跳转到login.aspx页面。但有些页面我们不想要登录的,可以在configuration中添加 <location>节,如下:
<location path="Demo.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
配置好后,可以在login.aspx.cs文件中处理登录认证:
if(登录用户名与密码有效)
{
FormsAuthentication.RedirectFromLoginPage(UserID, false);
}
UserID:登录输入的用户名
执行FormsAuthentication.RedirectFromLoginPage函数后,服务器会保存用户的登录信息,并跳转至来源页面,打开其它页面时不会再跳转到login.aspx重新登录。可以取出登录用户的用户名,对于Page页面,可以使用this.Page.User.Identity.Name获得,对于一般的处理程序可以使用context.User.Identity.Name获得。