我目前正在构建一个包含几个OWIN中间件的库.这些中间件应按特定顺序执行.在OWIN的第一个版本中,有一个IAppBuilder界面.但是,IAppBuilder它不再是OWIN的一部分,而是Microsoft.Owin的一部分.我不想强迫我的用户依赖Microsoft.Owin.
在不使用Microsoft.Owin的情况下,将中间件添加到OWIN管道的首选方法是什么?
我应该通过SMTP服务器发送电子邮件.此SMTP服务器需要身份验证.但是,如果我使用.NET SmtpClient的默认身份验证机制,则身份验证将失败504 Unrecognized Authentication Type.
使用PuTTy时,我能够成功进行身份验证:
250 AUTH LOGIN PLAIN
AUTH LOGIN
334 VXNlcm5hbWU6
Some base64 encoded username
334 UGFzc3dvcmQ6
Some base64 encoded password
235 Authentication Successful
Run Code Online (Sandbox Code Playgroud)
的SmtpClient是使用稍微不同的方法,其中的用户名与AUTH LOGIN命令传递:
250 AUTH LOGIN PLAIN
AUTH LOGIN Some base64 encoded username
504 Unrecognized Authentication
MAIL FROM: ...
Run Code Online (Sandbox Code Playgroud)
它似乎忽略了504,因为它正在发送MAIL FROM命令.在互联网上阅读一些来源,允许使用AUTH LOGIN命令发送用户名:
但是,此行为存在不同的RFC兼容版本,其中客户端最初使用AUTH LOGIN方法发送userid
问题很可能出在SMTP服务器端,但我无法控制它.
是否可以让SmtpClient单独发送命令?
using (var client = new SmtpClient(_configuration.Host, _configuration.Port))
{
client.UseDefaultCredentials = false;
client.ServicePoint.MaxIdleTime = 1;
client.EnableSsl = false;
client.Credentials = new NetworkCredential(_configuration.Username, …Run Code Online (Sandbox Code Playgroud) 假设我想使用Nlog记录一个对象Mycustomer.
我想要这样的东西:
logger.Trace(mycustomer)
现在在配置中如何指定要打印的属性?就像是:
<target name="output" xsi:type="Debugger" layout="${Name}" />
Run Code Online (Sandbox Code Playgroud)