c# – ASP.NET成员身份验证电子邮件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – ASP.NET成员身份验证电子邮件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5042字,纯文字阅读大概需要8分钟。
内容图文
![c# – ASP.NET成员身份验证电子邮件](/upload/InfoBanner/zyjiaocheng/770/99ce73109a534fe68042d8fec179a560.jpg)
尝试在基于this article的C#中创建电子邮件验证.
我创建了一个jangosmtp帐户来发送电子邮件.但它似乎没有起作用.
Web.config文件:
<system.net>
<mailSettings>
<smtp>
<network
host="relay.example.com" port="25" userName="********" password="********" />
</smtp>
</mailSettings>
</system.net>
Registration.aspx
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" DisableCreatedUser="True">
<WizardSteps>
<asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server" />
<asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server" />
</WizardSteps>
<MailDefinition BodyFileName="NewAccountTemplate.htm" From="example@example.com" IsBodyHtml="True" Subject="Steps to activate your new account..." Priority="High" />
</asp:CreateUserWizard>
</asp:Content>
Registration.aspx.cs:
namespace WebSite
{
public partial class Registration : System.Web.UI.Page
{
protected void CreateUserWizard1_SendingMail(object sender, MailMessageEventArgs e)
{
//Send an email to the address on file
MembershipUser userInfo = Membership.GetUser(CreateUserWizard1.UserName);
//Construct the verification URL
string verifyUrl = Request.Url.GetLeftPart(UriPartial.Authority) + Page.ResolveUrl("~/Verify.aspx?ID=" + userInfo.ProviderUserKey.ToString());
//Replace <%VerifyUrl%> placeholder with verifyUrl value
e.Message.Body = e.Message.Body.Replace("<%VerifyUrl%>", verifyUrl);
}
}
}
NewAccountTemplate.htm
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Steps to activate your account...</title>
</head>
<body style="font-family:Verdana;">
<h2>
Welcome to My Website!</h2>
<p>
Hello, <%UserName%>. You are receiving this email because you recently created a new account at my
site. Before you can login, however, you need to first visit the following link:</p>
<p>
<a href="<%VerifyUrl%>"><%VerifyUrl%></a></p>
<p>
After visiting the above link you can log into the site!</p>
<p>
If you have any problems verifying your account, please reply to this email to
get assistance.</p>
<p>
Thanks!</p>
</body>
</html>
Verify.aspx.cs:
namespace WebSite
{
public partial class Verify : Page
{
protected void Page_Load(object sender, EventArgs e)
{
//Make sure that a valid query string value was passed through
if (string.IsNullOrEmpty(Request.QueryString["ID"]) || !Regex.IsMatch(Request.QueryString["ID"], "[0-9a-f]{8}\\-([0-9a-f]{4}\\-){3}[0-9a-f]{12}"))
{
InformationLabel.Text = "An invalid ID value was passed in through the querystring.";
} else {
//ID exists and is kosher, see if this user is already approved
//Get the ID sent in the querystring
Guid userId = new Guid(Request.QueryString["ID"]);
//Get information about the user
MembershipUser userInfo = Membership.GetUser(userId);
if (userInfo == null) {
//Could not find user!
InformationLabel.Text = "The user account could not be found in the membership database.";
} else {
//User is valid, approve them
userInfo.IsApproved = true;
Membership.UpdateUser(userInfo);
//Display a message
InformationLabel.Text = "Your account has been verified and you can now log into the site.";
}
}
}
}
}
关于我的两件事,即我假设不会导致它起作用.
>如何知道甚至发送NewAccountTemplate.htm消息?更新啊,我现在看到createuserwizard1中发生了什么.仍然收到此错误消息.
>在NewAccountTemplate.htm上,我收到一条警告消息:
Warning ‘<% VerifyUrl %>’ was not found.
出了什么问题?我忽略了什么.
更新2:
如果我添加onsendingmail =“CreateUserWizard1_SendingMail”它生成一个链接,但是链接不起作用,因为用户永远不会被添加到数据库中我检查了这个.因此,当我点击电子邮件中的链接时,由于没有具有此ID的用户,因此显示了错误的请求obv.如果删除该行代码,则会创建用户,但不会生成任何链接:/
解决方法:
我终于开始工作了.
> onsendingmail =“CreateUserWizard1_SendingMail”这应该在创建用户向导中.
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server" onsendingmail="CreateUserWizard1_SendingMail">
<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" DisableCreatedUser="True">
<WizardSteps>
<asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server" />
<asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server" />
</WizardSteps>
<MailDefinition BodyFileName="NewAccountTemplate.htm" From="example@example.com" IsBodyHtml="True" Subject="Steps to activate your new account..." Priority="High" />
</asp:CreateUserWizard>
>仅使用<%VerificationUrl%>在NewAccountTemplate.htm中
>将registration.aspx.cs更改为
// Get the UserId of the just-added user
MembershipUser newUser = Membership.GetUser(CreateUserWizard1.UserName);
Guid newUserId = (Guid)newUser.ProviderUserKey;
// Determine the full verification URL (i.e., http://yoursite.com/Verification.aspx?ID=...)
string urlBase = Request.Url.GetLeftPart(UriPartial.Authority) + Request.ApplicationPath;
string verifyUrl = "Verify.aspx?ID=" + newUserId.ToString();
string fullUrl = urlBase + verifyUrl;
// Replace <%VerificationUrl%> with the appropriate URL and querystring
e.Message.Body = e.Message.Body.Replace("<%VerificationUrl%>", fullUrl);
内容总结
以上是互联网集市为您收集整理的c# – ASP.NET成员身份验证电子邮件全部内容,希望文章能够帮你解决c# – ASP.NET成员身份验证电子邮件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。