Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 电子邮件确认验证_C#_Wcf_Xamarin.forms - Fatal编程技术网

C# 电子邮件确认验证

C# 电子邮件确认验证,c#,wcf,xamarin.forms,C#,Wcf,Xamarin.forms,我有一个Wcf服务和一个Xamarin.forms移动应用程序,当用户从移动应用程序注册时,我希望web服务向用户发送电子邮件验证,当用户转到他/她的电子邮件并单击链接时,用户帐户将被激活 我只有一个解决方案,那就是在验证链接中有用户id,并给出服务url,后跟验证函数和用户id 有没有更好的安全方法,这样做,因为我不想给wcf链接中的链接 private void SendEmailConfirmation(String EmailId,string UserId) {

我有一个Wcf服务和一个Xamarin.forms移动应用程序,当用户从移动应用程序注册时,我希望web服务向用户发送电子邮件验证,当用户转到他/她的电子邮件并单击链接时,用户帐户将被激活

我只有一个解决方案,那就是在验证链接中有用户id,并给出服务url,后跟验证函数和用户id

有没有更好的安全方法,这样做,因为我不想给wcf链接中的链接

private void SendEmailConfirmation(String EmailId,string UserId)
        {
            MailMessage msg = new MailMessage();
            SmtpClient smtp = new SmtpClient();
            string emailId = EmailId;
            msg.From = new MailAddress("YourGmailEmailId@gmail.com");           
            msg.To.Add(emailId);
            msg.Subject = "Confirmation email for account activation";
            //For testing replace the local host path with your lost host path and while making online replace with your website domain name
            //string ActivationUrl = "http://localhost:8665/FetchUserId(emailId) & "&EmailId=" & emailId);
            msg.Body ="Thanks for showing interest and registring in <a href='http://www.activationlink.com'> webservice.com<a> " +
                  " Please Thanks!";
            msg.IsBodyHtml = true;
            smtp.Credentials = new NetworkCredential("emailaddress@gmail.com", "mypassword");
            smtp.Port = 587;
            smtp.Host = "smtp.gmail.com";
            smtp.EnableSsl = true;
            //NetworkCredential Credentials = new NetworkCredential("emailaddress@gmail.com", "Super2@17");
            //smtp.UseDefaultCredentials = false;
            smtp.Send(msg);
        }
private void sendmailconfirmation(字符串EmailId,字符串UserId)
{
MailMessage msg=新的MailMessage();
SmtpClient smtp=新SmtpClient();
字符串emailId=emailId;
msg.From=新邮件地址(“YourGmailEmailId@gmail.com");           
msg.To.Add(emailId);
msg.Subject=“账户激活确认邮件”;
//为了进行测试,请使用丢失的主机路径替换本地主机路径,同时使用网站域名进行联机替换
//字符串ActivationUrl=”http://localhost:8665/FetchUserId(emailId)和“&emailId=”&emailId);
msg.Body=“感谢您对webservice.com表现出兴趣并注册”+
“谢谢!”;
msg.IsBodyHtml=true;
smtp.Credentials=新的网络凭据(“emailaddress@gmail.com“,“我的密码”);
smtp.Port=587;
smtp.Host=“smtp.gmail.com”;
smtp.EnableSsl=true;
//NetworkCredential凭据=新的NetworkCredential(“emailaddress@gmail.com", "Super2@17");
//smtp.UseDefaultCredentials=false;
smtp.Send(msg);
}

您需要导入上述名称空间。

您可以创建一个函数来生成不合理的代码(如令牌、哈希、guid或类似的代码),并将其与用户数据和激活该链接的日期限制(例如24小时)相关联


然后,当用户使用令牌单击此链接时,您将验证令牌是否仍然有效并启用用户帐户。

发送邮件不是OP的问题。您的问题是什么?是用户的身份吗?确认链接?
using System.Linq;
using System.Net;
using System.Net.Mail;