【问题标题】:Verifying username and password in C#在 C# 中验证用户名和密码
【发布时间】:2011-02-12 19:36:46
【问题描述】:

我有一个应用程序,它从数据库表中获取 gmail 电子邮件地址和密码,并在使用这些电子邮件发送任何消息之前对其进行验证,但以下部分会在出现任何验证错误时向我返回异常。

new System.Net.NetworkCredential(username, password);

如何验证用户名和密码是否正确而不会在运行时抛出任何异常?

【问题讨论】:

  • 你是通过 gmail 发送电子邮件的。对吗?
  • 通过gmail账户发送邮件,需要开启账户SMTP地址。确保所有邮箱都在gmail账户中开启了SMTP功能。
  • @Dusk,在询问有关异常的问题时,请提供完整信息,包括引发异常的源代码行、类型、消息和堆栈跟踪。所有这些都可以通过调用ex.ToString()获得。
  • @Dusk - 您能否更新您的问题以显示它实际上引发异常的行,而不是一些根本不会引发异常的半随机行。
  • @Dusk:启用 smtp 支持后,您仍然遇到异常。

标签: c# .net email authentication networkcredentials


【解决方案1】:

提供此答案是为了确定问题的确切性质,因为最初发布的代码不足。

根据documentation,构造函数不会引发异常——除非您使用version,它采用SecureString 作为密码。

在这种情况下,如果 SecureString 类不受支持,它会引发 NotSupportedException

实际引发了什么异常?

【讨论】:

  • 我在 SmtpClient 类的发送方法中收到“SMTP 异常未处理”
【解决方案2】:

Documentation for NetworkCredential(string, string) 没有说明异常。 Mono 的implementation 也不会在构造函数中抛出异常。

当您尝试发送一封电子邮件时,您是否遇到异常?

在任何一种情况下,都将其包装在 try/catch 块中。这就是应该处理异常的方式。
如果您对异常不熟悉,请务必阅读Eric's post 关于此问题,它与您的问题直接相关。

【讨论】:

    猜你喜欢
    • 2010-11-15
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    • 2013-12-26
    • 2016-01-24
    相关资源
    最近更新 更多