使用Form认证实现用户登录 (LoginView的使用)

今天一个朋友(网友)初学.net的,问了我一个问题,他说想做一个用户登录的页面,看到Asp.net控件里面有个LoginView的控件,问我会不会用。我说会,然后他让我写一个Demo给他,让他学习下。

早上,因为忙碌,所以就没写了,让他自己找资料先学下,现在我就写个Demo,希望想学的人会有帮助。

创建一个WebSite,新建一个页面命名为SignIn.aspx,然后在页面中添加如下的代码,或者你可以直接拖控件到页面,不过我习惯了写代码了

Code
            
<asp:LinkButton ID="btnLogout" runat="server" Text="Log out" OnClick="btnLogout_Click"></asp:LinkButton>
        
</LoggedInTemplate>
    
</asp:LoginView>

在LoginView控件里面 AnonymousTemplate 是用户没登录时候显示的内容, LoggedInTemplate 是用户登录后显示的内容,还有一个 RoleGroups 是控制角色相关的,这里就没了,因为不用;然后在AnonymousTemplate 里面设计登录asp:Login的Layout,好了代码就上面贴出来的。

Login控件有一个 OnAuthenticate 事件,那是在我们点击LoginButton的时候触发Command="Login"的事件

接下来我们写login_OnAuthenticate事件

Code

TrySignIn方法的实现,这里如果用户名不是"admin" 密码不是 "123" 则登录失败

Code

退出登录的方法

Code

这样,登录功能算是实现了,但是还不能正确运行起来,登录界面没有显示出来,因为Form认证的设置还没实现

打开Web.config文件,然后找到<authentication mode="Windows" ></authentication>节点,修改为

Code

现在你可以运行下,登录界面是出来了,但是样式没有了,首页也需要登录,这样不对,还需要设置首页和样式文件不需要进行认证,我们找到</system.web>,在它后面添加如下设置

Code

现在,我们运行下项目,Ok,安静了...

附:源代码

posted on 2009-03-25 13:16  jerreychen  阅读(6653)  评论(2编辑  收藏  举报

导航