SqlMembershipProvider.GetUserNameByEmail(String) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取与指定电子邮件地址关联的用户名。
public:
override System::String ^ GetUserNameByEmail(System::String ^ email);
public override string GetUserNameByEmail (string email);
override this.GetUserNameByEmail : string -> string
Public Overrides Function GetUserNameByEmail (email As String) As String
参数
- String
要搜索的电子邮件地址。
返回
与指定电子邮件地址关联的用户名。 如果未找到匹配项,此方法将返回 null
。
例外
email
的长度超过 256 个字符。
数据库中存在多个具有相同电子邮件地址的用户,并且 RequiresUniqueEmail 为 true
。
示例
下面的代码示例检索指定电子邮件地址的用户名。
注意
此示例使用 Membership 类调用 SqlMembershipProvider 指定为 defaultProvider
Web.config 文件中的 。 如果需要访问类型 为 SqlMembershipProvider的默认提供程序,则可以强制转换 Provider 类的 Membership 属性。 若要以特定提供程序类型的形式访问其他已配置的提供程序,可以使用 类的 Membership 属性按配置的名称Providers对其进行访问,并将其强制转换为特定的提供程序类型。
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
public void Search_OnClick(object sender, EventArgs args)
{
string username = Membership.GetUserNameByEmail(EmailTextBox.Text);
if (username == null)
{
Msg.Text = "Email address " + Server.HtmlEncode(EmailTextBox.Text) + " is not found. Please reenter.";
}
else
{
Msg.Text = "The user name for " + Server.HtmlEncode(EmailTextBox.Text) +
" is " + Server.HtmlEncode(username) + ".";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Retrieve Username By Email</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Forgot your Username? Search for it by email address.</h3>
<asp:Label id="Msg" runat="server" ForeColor="maroon" /><br />
Email address: <asp:Textbox id="EmailTextBox" Columns="30" runat="server" />
<asp:RequiredFieldValidator id="EmailRequiredValidator" runat="server"
ControlToValidate="EmailTextBox" ForeColor="red"
Display="Static" ErrorMessage="Required" /><br />
<asp:Button id="SearchButton" Text="Search"
OnClick="Search_OnClick" runat="server" />
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Public Sub Search_OnClick(sender As Object, args As EventArgs)
Dim username As String = Membership.GetUserNameByEmail(EmailTextBox.Text)
If username Is Nothing Then
Msg.Text = "Email address " & Server.HtmlEncode(EmailTextBox.Text) & " is not found. Please reenter."
Else
Msg.Text = "The user name for " & Server.HtmlEncode(EmailTextBox.Text) & _
" is " & Server.HtmlEncode(username) & "."
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Retrieve Username By Email</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Forgot your Username? Search for it by email address.</h3>
<asp:Label id="Msg" runat="server" ForeColor="maroon" /><br />
Email address: <asp:Textbox id="EmailTextBox" Columns="30" runat="server" />
<asp:RequiredFieldValidator id="EmailRequiredValidator" runat="server"
ControlToValidate="EmailTextBox" ForeColor="red"
Display="Static" ErrorMessage="Required" /><br />
<asp:Button id="SearchButton" Text="Search"
OnClick="Search_OnClick" runat="server" />
</form>
</body>
</html>
注解
此方法由 Membership 类使用电子邮件地址调用,该类使用该电子邮件地址从 ASP.NET 应用程序的配置文件 (Web.config) 中指定的 SQL Server 数据库中检索关联的用户名。
如果成员资格数据库中的多个用户具有相同的电子邮件地址,则返回遇到的第一个用户名。 可以在应用程序配置文件中将 requiresUniqueEmail
属性 true
设置为 ,以确保数据库中的每个电子邮件地址都是唯一的。
删除 email
参数值的前导和尾随空格。