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获得。

posted @ 2011-03-29 12:22  涂墨留香  阅读(379)  评论(0编辑  收藏  举报