获取 5.7.64 租户归因;中继访问被拒绝 ['' 的 ValidationStatus 为 EmptyCertificate],但仅在使用身份时

问题描述 投票:0回答:1

这是一个有趣的事情。在我的具有身份验证功能的 ASP.NET (.NET 8) 应用程序中,我有一个

IEmailSender<AppUser>
的实现(我们将其称为
IdentityEmailService
)。
IdentityEmailService
已注册到瞬态范围,并且仅依赖于单例。在内部,它使用 Mailkit 通过匿名 SMTP 中继发送电子邮件。 SMTP 请求通过 IP 地址进行验证,因此不需要证书。

我有一个

DebugController
,我与Postman结合使用来测试
SendEmailConfirmationLink
IdentityEmailService
方法。

问题

如果我通过调试控制器触发

SendEmailConfirmationLink
功能,一切正常。但是,如果我点击触发相同
SendEmailConfirmationLink
函数的身份端点,那么我会从中继服务器收到错误:

5.7.64 租户归因;中继访问被拒绝 [“”的验证状态为空证书]

做出假设:

  1. IdentityEmailService
    肯定用于这两个呼叫。
  2. SMTP 中继配置正确。

此外,Mailkit SmtpClient 看起来相同(如果我在调用发送函数之前放置一个断点并比较两个客户端的属性)。

依赖注入范围?

我能想到的唯一区别是 Identity 库在任何 DI 范围之外调用服务,而

DebugController
确实有一个范围,但由于该服务仅依赖于单例,所以我不知道它会如何改变任何东西.

asp.net asp.net-identity .net-8.0 smtpclient mailkit
1个回答
0
投票

想通了。这是因为 SMTP 服务器显然被配置为仅允许某些域的出站收件人。我的两次测试使用了不同的收件人地址,其中之一是 Gmail 地址,这显然是不允许的。

© www.soinside.com 2019 - 2024. All rights reserved.