Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Faccruz

[Resolvido] CreateUserWizard - Enviar Email para Roles

Recommended Posts

Estou usando essas funções para enviar um email para todos os usuários cadastrados na role (regras) Admin

 

private static void sendMail(string strMsg, string strMail)
	{ 
		MailMessage mail = new MailMessage();

		mail.From = new MailAddress("faccsystem@faccsystem.com.br");

		mail.To.Add(strMail);

		mail.Subject = "Usuário Criado - Alterar Roles";

		StringBuilder mensagem = new StringBuilder();
		mensagem.Append("Alterar a ROLES do seguinte usuário <br>");
		mensagem.Append("<br>");
		mensagem.Append("<br>");
		mensagem.Append("<br>");
		mensagem.Append("=======================================");
		mensagem.Append("<br>");
		mensagem.Append("<b>Usuário: " + strMsg + "</b>");
		mensagem.Append("<br>");
		mensagem.Append("<br>");
		mensagem.Append("=======================================");
		mensagem.Append("<br>");

		mail.Body = mensagem.ToString();
		mail.IsBodyHtml = true;

		mail.Priority = MailPriority.High;
		SmtpClient smtpClient = new SmtpClient();
		smtpClient.Send(mail);
	}

	public static void sendMailApprover(string strUser)
	{
		string[] roleListStr = Roles.GetUsersInRole("Admin");

		for (int i = 0; i < roleListStr.Length; i++)
		{
			MembershipUser user;
			user = Membership.GetUser(roleListStr.GetValue(i).ToString());

			string email = user.Email;

			sendMail(strUser, email);
		}
	}

	protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
	{
		sendMailApprover(CreateUserWizard1.UserName);
	}

Estou recebendo o email normalmente com o nome do usuário, porém me retorna o seguinte erro:

 

Erro de Servidor no Aplicativo '/FaccSystem'.

Referência de objeto não definida para uma instância de um objeto.

Descrição: Ocorreu uma exceção não tratada durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código.

 

Detalhes da Exceção: System.NullReferenceException: Referência de objeto não definida para uma instância de um objeto.

 

Erro de Origem:

 

Linha 64: user = Membership.GetUser(roleListStr.GetValue(i).ToString());

Linha 65:

Linha 66: string email = user.Email; --> aqui acontece o erro

Linha 67:

Linha 68: sendMail(strUser, email);

 

 

Arquivo de Origem: c:\Documents and Settings\Fabio\Meus documentos\Visual Studio 2008\WebSites\FaccSystem\Join.aspx.cs Linha: 66

 

Rastreamento de Pilha:

 

[NullReferenceException: Referência de objeto não definida para uma instância de um objeto.]

Join.sendMailApprover(String strUser) in c:\Documents and Settings\Fabio\Meus documentos\Visual Studio 2008\WebSites\FaccSystem\Join.aspx.cs:66

Join.CreateUserWizard1_CreatedUser(Object sender, EventArgs e) in c:\Documents and Settings\Fabio\Meus documentos\Visual Studio 2008\WebSites\FaccSystem\Join.aspx.cs:74

System.Web.UI.WebControls.CreateUserWizard.OnCreatedUser(EventArgs e) +111

System.Web.UI.WebControls.CreateUserWizard.AttemptCreateUser() +354

System.Web.UI.WebControls.CreateUserWizard.OnNextButtonClick(WizardNavigationEve

ntArgs e) +102

System.Web.UI.WebControls.Wizard.OnBubbleEvent(Object source, EventArgs e) +418

System.Web.UI.WebControls.CreateUserWizard.OnBubbleEvent(Object source, EventArgs e) +161

System.Web.UI.WebControls.WizardChildTable.OnBubbleEvent(Object source, EventArgs args) +19

System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37

System.Web.UI.WebControls.Button.OnCommand(CommandEventArgs e) +118

System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +166

System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBa

ckEvent(String eventArgument) +10

System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13

System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36

System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565

 

 

Informações sobre a Versão: Microsoft .NET Framework Versão:2.0.50727.3082; Versão do ASP.NET:2.0.50727.3082

Será que alguem pode me dar uma luz para resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provavelmente sua variável user, esta nula.

Confirme isso.

 

Abraços...

Realmente estava nula. Estava trazendo dois usuários sendo que havia apenas um como a role Admin

 

Resolvi dessa forma

 

for (int i = 0; i < roleListStr.Length - 1; i++)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.