您的位置:首页 > 其它

Visual Studio 2005 Login 控件的使用

2008-03-29 17:02 513 查看
今日,想学下Login空间的使用,找了代码看了,硬是不知道数据库在那里来的!还有怎么获取数据的!

后来才知道,原来,它是在新用户注册的时候自动创建的数据库!搞笑,!但是,怎么自己连接sql 数据库呢??

看看转载的东西吧!很多东西MSDN上都有!我也复制了一些高级的功能!

作为一个开发者,我们清楚大多数的程序都有一个登陆与处理忘记密码等等功能的模块。

现在,使用 Visual Studio 2005,设计登陆页面变得非常简单因为 VS 2005 开发环境的工具箱有了内建的登陆分组,这个分组有各种跟登陆功能相关的控件。

<connectionStrings>

<!--用户登录控件相关 aspnet_regsql 命令即可 -->

<remove name="LocalSqlServer" />

<add name="LocalSqlServer" connectionString="Data Source=.;Initial Catalog=SimpleOA;Persist Security Info=True;User ID=sa;Password=luxin145" providerName="System.Data.SqlClient" />

<add name="SimpleOAConnectionString" connectionString="Data Source=.;Initial Catalog=SimpleOA;Integrated Security=True" providerName="System.Data.SqlClient"/>

</connectionStrings>

<system.web>

<!--更改login控件对密码安全性的要求-->

<membership>

<providers>

<remove name="AspNetSqlMembershipProvider"/>

<add name="AspNetSqlMembershipProvider"

type=" System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

connectionStringName="LocalSqlServer"

enablePasswordRetrieval="false"

enablePasswordReset="true"

requiresQuestionAndAnswer="true"

applicationName="/"

requiresUniqueEmail="false"

passwordFormat="Hashed"

maxInvalidPasswordAttempts="5"

minRequiredPasswordLength="6"

minRequiredNonalphanumericCharacters="0"

passwordAttemptWindow="10"

passwordStrengthRegularExpression="" />

</providers>

</membership>

<!--对关键的属性做一下说明:

connectionStringName 数据库连接。这个要在web.config设置

enablePasswordRetrieval 获得一个值,指示当前成员资格提供程序是否配置为允许用户检索其密码。

enablePasswordReset 获得一个值,指示当前成员资格提供程序是否配置为允许用户重置其密码。

requiresQuestionAndAnswer 获取一个值,该值指示默认成员资格提供程序是否要求用户在进行密码重置和检索时回答密码提示问题。

applicationName 获取或设置应用程序的名称。

requiresUniqueEmail 指示用户在创建用户时是否必须提供唯一的电子邮件地址值。

passwordFormat 指示在成员资格数据存储区中存储密码的格式。下面有详细说明

maxInvalidPasswordAttempts 获取锁定成员资格用户前允许的无效密码或无效密码提示问题答案尝试次数。

minRequiredPasswordLength 获取密码所要求的最小长度。

minRequiredNonalphanumericCharacters 获取有效密码中必须包含的最少特殊字符数。

passwordAttemptWindow 获取在锁定成员资格用户之前允许的最大无效密码或无效密码提示问题答案尝试次数的分钟数。

对PasswordFormat 的详细说明

属性指示存储密码的格式。密码可以采用 Clear、Encrypted 和 Hashed 密码格式存储。Clear 密码以明文形式存储,这可以提高存储和检索密码的性能,但安全性较差,当数据源安全性受到威胁时此类密码很容易被读取。Encrypted 密码在存储时进行了加密,可以在比较或检索密码时进行解密。此类密码在存储和检索时需要进行额外的处理,但比较安全,在数据源的安全性受到威胁时不容易被获取。Hashed 密码在存储到数据库时使用单向哈希算法和随机生成的 salt 值进行哈希处理。在验证某一密码时,将用数据库中的 salt 值对该密码进行哈希计算以进行验证。无法检索哈希密码。-->

---------------------------------------------------------------------------------------------------------------------------------------

如何:使用 ASP.NET Login 控件的高级功能

Login 控件是一种复合控件,提供了登录窗体的所有常用用户界面 (UI) 元素。该控件被模块化,可分别自定义每个部件。这些部件包括“用户名”和“密码”文本框、“提交”按钮、用于创建新用户的按钮、“记住我”复选框和用户的帮助信息。您可以通过定义新元素和重用默认组件来定义自己的登录控件用户界面。您还可以自定义 Login 控件的用户界面文本和外观(字体和颜色)。或者,可以通过应用 ASP.NET 主题或外观来更改 Login 控件的总体外观。

此外,您还可以利用 Login 控件的更多高级功能,如用户登录时是否将登录信息存储在浏览器的持久性 Cookie 中或者登录控件(在默认登录页以外的页上)是否可见。最后,您可以将登录控件转换为模板以完全控制控件的外观。

控制 Login 控件在用户登录时是否可见

将一个 Login 控件放在页上。


注意
默认情况下,该控件配置为使用名为 Login.aspx 的登录页。您可以通过设置 FormsAuthentication 类的 LoginUrl 属性更改 Web.config 文件中登录页的名称。

如果希望只在用户未登录时显示 Login 控件(该控件将始终显示在由 LoginUrl 属性标识的登录页上),则将 VisibleWhenLoggedIn 属性设置为 false

控制是否将身份验证令牌存储在持久性 Cookie 中

如果希望控件显示“下次记住我”复选框,则将 DisplayRememberMe 属性设置为 true。如果用户在登录时选中“下次记住我”复选框,身份验证令牌将被存储在浏览器的持久性 Cookie 中。

如果希望在默认情况下选中“下次记住我”复选框,则将 RememberMeSet 属性设置为 true

如果希望将身份验证令牌存储在持久性 Cookie 中,而不为用户提供清除“下次记住我”复选框的选择,则将 RememberMeSet 属性设置为 true,并将 DisplayRememberMe 属性设置为 false。对于可以从供多个用户使用的公共计算机访问的站点,则不建议这样做,因为用户的持久性身份验证令牌可能被不必要的用户使用。

将帮助链接添加到 Login 控件

若要添加一个链接到 Login 控件,以将用户转到他或她能够创建新用户帐户的 URL,则将 CreateUserText 属性设置为文本(如 Click here to register(单击此处注册)),并将 CreateUserUrl 属性设置为帮助页的 URL(如 ~/register.aspx)。

若要添加一个链接到 Login 控件,以将用户转到可以恢复用户密码的 URL,则将 PasswordRecoveryText 属性设置为文本(如 Forgot your password?(是否忘记了密码?)),并将 PasswordRecoveryUrl 属性设置为帮助页的 URL(如 ~/recoverpassword.aspx)。

若要添加一个链接到 Login 控件,以将用户转到帮助 URL,则将 HelpPageText 属性设置为文本(如 Need Help?(是否需要帮助?)),并将 HelpPageUrl 属性设置为帮助页的 URL(如 ~/userhelp.aspx)。

将图像添加到 Login 控件

若要使用图像代替“登录”按钮,则将 LoginButtonImageUrl 属性设置为登录图像文件的 URL,如 ~/images/login.gif

您还可以使用 PasswordRecoveryIconUrlCreateUserIconUrlHelpPageIconUrl 属性分别包含链接到创建用户 URL、密码恢复 URL 和帮助 URL 的图像。

将登录控件转换为模板

您可以将 Login 控件转换为模板,在标记中该模板被定义为包含 ASP.NET 控件(如 LabelTextBox)的表。然后,您可以使用这些元素或添加自己的元素来为 Login 控件创建自定义模板。请注意,组成登录模板的控件与默认模板中的控件使用相同的控件 ID。

对登录控件使用模板

在设计视图中,将 Login 控件放在页上。

右击该控件,然后从快捷菜单中选择“转换为模板”。

Login 控件的转换方式取决于 DOCTYPE 声明。如果 DOCTYPE 声明设置为 XHTML 1.0 Transitional (<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">),则样式应用于在将 Login 控件转换为模板时创建的表。如果 DOCTYPE 声明没有设置为 XHTML 1.0 Transitional 或不存在,则没有任何样式信息保存在生成的外部表中。

例如,如果您设置了 Login 控件上的相对字号,然后将该控件转换为模板,则相对字号没有保存在表中。下面的示例显示字号设置为 X-Large 的 Login 控件。



复制代码


<asp:login id="Login2" runat="server" font-size="X-Large" BackColor="#F7F6F3" BorderColor="#E6E2D8" BorderPadding="4" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" ForeColor="#333333">
<TitleTextStyle BackColor="#5D7B9D" Font-Bold="True" Font-Size="0.9em" ForeColor="White" />
<InstructionTextStyle Font-Italic="True" ForeColor="Black" />
<TextBoxStyle Font-Size="0.8em" />
<LoginButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid" BorderWidth="1px"
Font-Names="Verdana" Font-Size="0.8em" ForeColor="#284775" />
</asp:login>


当上面的代码中的 Login 控件转换为模板时,创建的表没有应用任何样式。下面的示例是上述控件在转换为模板时生成的代码段。



复制代码


<asp:login id="Login2" runat="server" font-size="X-Large" BackColor="#F7F6F3" BorderColor="#E6E2D8" BorderPadding="4" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" ForeColor="#333333">
<TitleTextStyle BackColor="#5D7B9D" Font-Bold="True" Font-Size="0.9em" ForeColor="White" />
<InstructionTextStyle Font-Italic="True" ForeColor="Black" />
<TextBoxStyle Font-Size="0.8em" />
<LoginButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid" BorderWidth="1px"
Font-Names="Verdana" Font-Size="0.8em" ForeColor="#284775" />
<LayoutTemplate>
<table border="0" cellpadding="4" cellspacing="0" style="border-collapse: collapse">
...


如果您要样式属性也应用于在将 Login 控件转换为模板时创建的表,请确保先将页的 DOCTYPE 设置为 XHTML 1.0 Transitional,然后在设计视图中,从控件菜单中选择“转换为模板”。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: