今日,想学下Login空间的使用,找了代码看了,硬是不知道数据库在那里来的!还有怎么获取数据的!
后来才知道,原来,它是在新用户注册的时候自动创建的数据库!搞笑,!但是,怎么自己连接sql 数据库呢??
看看转载的东西吧!很多东西MSDN上都有!我也复制了一些高级的功能!
作为一个开发者,我们清楚大多数的程序都有一个登陆与处理忘记密码等等功能的模块。
第一步:- 在拖拽 Login 控件到页面上这样在设计视图中它会看起来像一个登陆页面。
第二步: 一旦 UI 设置好了就该转到代码部分来看如何给控件写代码了。
为这个控件编写响应代码,我们首先要处理 Login1_Authenticate 事件。
双击 Login 控件将会生成如下代码:
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
bool Authenticated = false ;
Authenticated = SiteLevelCustomAuthenticationMethod(Login1.UserName, Login1.Password);
e.Authenticated = Authenticated;
if (Authenticated == true )
{
Response.Redirect("Home.aspx");
}
}
private bool SiteLevelCustomAuthenticationMethod(string UserName, string Password)
{
bool boolReturnValue = false ;
// Insert code that implements a site-specific custom
// authentication method here.
// This example implementation always returns false.
string strConnection = "server=dtpxp-skumari;database=master;uid=sa;pwd=;";
SqlConnection Connection = new SqlConnection(strConnection);
String strSQL = "Select * From Employee";
SqlCommand command =new SqlCommand(strSQL, Connection);
SqlDataReader Dr;
Connection.Open();
Dr=command.ExecuteReader();
while (Dr.Read())
{
if ((UserName == Dr["name"].ToString()) & (Password == Dr["Password"].ToString()))
{
boolReturnValue = true ;
}
Dr.Close();
return boolReturnValue;
}
}
Login 控件有一个名为 FailureText 的属性可以用来设置自己的登陆失败提示信息。
一旦通过了身份验证,程序将根据 DestinationPageUrl 属性转向首页。DestinationPageUrl 是 Login 控件用来设置身份验证成功之后转向的属性。如果验证失败将会给出错误信息提示。
在vs.net2005中,默认的各类的provider是使用sql express的,有的时候,如果想使用sql sever 2000或者sql server2005,那应该怎么办呢?
在web.config中的配置如下:
providerName="System.Data.SqlClient" /> providerName="System.Data.SqlClient" />
< 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 值对该密码进行哈希计算以进行验证。无法检索哈希密码。 -->
控制 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 )。