日期:2010-05-08  浏览次数:20512 次

  一、 引言

  与ASP.NET 2.0一同上市的有几个新的安全控件-它们位于工具的Login选项卡中(见图1)-这些控件大大简化了Web开发人员的工作。通过使用这些新的安全控件,现在你可以执行例如用户登录、注册、口令改变等的任务;而且,为此做出的努力仅是拖放相应的控件到你的Web表单上去。在本文中,我将向你展示怎样使用这些新控件来实现用户认证。

  首先,让我们探索一下LoginView、LoginStatus和LoginName三个控件的使用。首先,让我们使用Visual Studio 2005 Beta 2构建一个Web工程。启动Visual Studio IDE,然后从文件菜单中点击"New Web Site"以创建一个新的Web工程,并命名工程为"C:\SecurityControls"。

  在Default.aspx Web表单上,拖放并加入一个LoginView控件。该LoginView控件是一个容器控件-用于根据用户是否已登录显示不同的信息。

  首先,我们用文本填充LoginView控件,如图2所示。然后,把Login控件拖拽到LoginView控件上。在用户还没有被认证(匿名)之前,你刚输入的文本将被显示。该Login控件显示一个链接以允许用户被重定向到另一个页面以登录到应用程序。

  在LoginView控件的"Smart Tasks"菜单上,把视图改变为"LoggedInTemplate"(见图3)。

  随后改变视图,把在图4中显示的文本输入到LoginView控件。一旦用户被认证该文本即被显示。然后,把LoginName控件拖放到LoginView控件之中。该LoginName控件将显示用于登录到应用程序的用户名。

              
图1.该图显示ASP.NET 2.0中新型安全控件。 图2.图显示填充LoginView控件的过程。
 
图3.你可以改变LoginView控件的显示形式。          图4.在用户被认证后该文本显示出来。

  二、 使用Login控件

  现在让我们添加一新的Web表单到该工程(在解决方案资源管理器中右击工程名称并且选择"Add New Item...")并且命名为Login.aspx。你的应用程序将使用这个表单来允许用户登录到该应用程序。

  注意,在ASP.NET 2.0中,默认登录页面命名为Login.aspx(这是被默认加入到ASP.NET 2.0中的并可以通过查看machine.config.comments进行校验)。

  然而,如果你确实想为你的登录页面使用一不同的命名,你可以通过增加下列的几行来修改Web.config文件。你可以改变认证方式-从缺省的Login.aspx改变为Authenticate.aspx:

<system.web>
<authentication mode="Forms">
<forms name=".ASPXAUTH"
loginUrl="Authenticate.aspx"
protection="Validation" timeout="999999" />
</authentication>
...


图5.应用AutoFormat:这是一种应用格式到Login控件的方法。

图6.增加一个模式:这是在应用彩色模式后的Login控件样式。

  把Login控件拖到Login.aspx上。你可以应用格式到Login控件以使它看起来更专业化。点击Login控件的"Smart"标签并且选择"Auto Format..."链接(见图5)。

  选择彩色模式之后,Login控件应该看上去如图6所示。

  默认情况下,ASP.NET 2.0使用Windows认证-如果你针对互联网用户那么这种方式不够灵活。因此,你应该把认证方式从默认的Windows方式改变到表单认证方式。

  添加一个Web.config文件到你的工程(在工程名字上单击右键,在解决方案资源管理器中并选择"Add New Item.... ",从可用的列表选项中选择"Web Configuration File")。

  在Web.config中,通过增加下列的几行代码,从Windows认证方式改变到表单认证方式。你使用表单认证,这样你可以添加用户到你的Web站点而不需要在Windows下创建新的用户帐户。

<system.web>
<authentication mode="Forms"/>
...
  三、 把一新用户添加到你的应用程序

  在你继续测试该应用程序之前,你需要为该应用程序创建一新用户。你可以使用ASP.NET Web站点管理工具(WAT)来添加一新用户到你的应用程序。为了激活WAT,选择"Website",然后选择"ASP.NET Configuration"(见图7)。


图7.Web站点管理:该图显示怎样激活WAT

  该WAT将被显示在一新的网页中。点击"Security"链接跳转到"Security"选项卡(见图8)。


图8.WAT:这里显示出WAT