小编tos*_*ory的帖子

什么被认为是构建从C#Web应用程序发送电子邮件的最佳方式?

我正在开发一个即将上线的Web应用程序,我现在正试图找出处理从应用程序发送电子邮件的最佳方法.我完全理解如何使用MailMessage和SmtpClient类从应用程序发送电子邮件,但我的问题来自不同的角度.我在这个项目之前工作的主要目的是支持我之前开发的旧应用程序.在这些应用程序中,当他们需要发送电子邮件时,他们会将任何消息硬编码到实际消息中,并将所有HTML标记直接嵌入到C#代码中.

我正在处理的应用程序将有一个模板用于发送电子邮件,作为一种样式容器,不同的消息将嵌入到模板的主要内容div中.我想避免在这个应用程序中硬编码这些模板,所以我一直在试图找出布局项目的最佳方法.我曾想过使用t4模板,并将不同的t4读入应用程序并使用指定参数的String.Format将名称/电子邮件添加到要发送的消息中.但是,我不确定这是最好的方法.

我的另一个想法是为每种类型的消息定义一个类,但是这最终会再次硬编码消息,正如我所说,我不想这样做.

我的问题是,你过去怎么接近这个?什么有效,什么没有,有什么原因?我已经在网上看了一遍,但是其中唯一的内容是如何发送消息,或者我没有使用正确的Google强力词.

c# architecture email asp.net-mvc t4

7
推荐指数
1
解决办法
1023
查看次数

模型创建期间的实体框架NullReferenceException

我正在使用另一个开发人员创建的实体\表来处理WCF\EF时作为菜鸟的项目.我通常很快就能抓住新事物,而且我对如何使用datacontext在应用程序中完成工作有一些小的基础知识.我唯一的问题是,其他开发人员创建的上下文似乎不起作用,我不确定问题是模型,映射还是表.

这是项目的基本前提.开发人员首先创建数据库,然后使用这些对象的EF映射的POCO对象创建表.他这样做是为了确保以后使用较新的columns\tables轻松升级.在创建模型时,通过覆盖OnModelCreating事件并将映射添加到每个对象的模型构建器来替换映射而不是EF的映射.然后,接下来似乎发生的事情是NullReferenceException:

at System.Data.Entity.ModelConfiguration.Configuration.Properties.Navigation.NavigationPropertyConfiguration.ValidateConsistency(NavigationPropertyConfiguration navigationPropertyConfiguration)
at System.Data.Entity.ModelConfiguration.Configuration.Properties.Navigation.NavigationPropertyConfiguration.Configure(EdmNavigationProperty navigationProperty, EdmModel model, EntityTypeConfiguration entityTypeConfiguration)
at System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration.ConfigureAssociations(EdmEntityType entityType, EdmModel model)
at System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration.Configure(EdmEntityType entityType, EdmModel model)
at System.Data.Entity.ModelConfiguration.Configuration.ModelConfiguration.ConfigureEntities(EdmModel model)
at System.Data.Entity.DbModelBuilder.Build(DbProviderManifest providerManifest, DbProviderInfo providerInfo)
at System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection)
at System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext)
at System.Data.Entity.Internal.RetryLazy`2.GetValue(TInput input)
at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
at System.Data.Entity.Internal.Linq.InternalSet`1.GetEnumerator()
at System.Data.Entity.Infrastructure.DbQuery`1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
Run Code Online (Sandbox Code Playgroud)

我的主要问题是,我似乎找不到任何可以通过搜索引起我的原因的信息,因为我似乎无法找到在这个特定方法中遇到此问题的其他人.我将包含映射\ POCOs \用法的代码片段,但我在这个项目的NDA下,我不知道扩展到什么程度.我的主要问题是,如果有人可以告诉我应该在哪个方面查找此问题的原因... POCO设置,映射设置或表设置?任何帮助将不胜感激!我已经多次查看了所有代码,但似乎无法发现任何事情,所以一些重点会有所帮助.我会尽力帮助.

c# poco nullreferenceexception entity-framework-4.1

4
推荐指数
1
解决办法
2631
查看次数

如何从证书中获取AuthorityKeyIdentifier

我正在尝试使用 Bouncy Castle 生成证书,但我发现我似乎无法获取颁发证书的 AuthorityKeyIdentifier。我一直试图找出到底出了什么问题,但到目前为止我还不知道。

我正在检查的商店中的证书的授权密钥标识符为

KeyID=64 c1 59 db eb e7 2b f0 d7 e5 e3 81 77 d2 be b0
Certificate Issuer:
     CN=Test Certification Authority
Certificate SerialNumber=5c 27 00 3b 0f 0a a2 83 4a 8d 2b d5 45 d2 9c 3f
Run Code Online (Sandbox Code Playgroud)

然而,每当我在充气城堡中使用以下代码来获取密钥时,它都会给我一个完全不同的 AKI:

var password = "p@ssw0rd1";
var file = File.ReadAllBytes(@"C:\somefilepath\TESTCA.pfx");

Pkcs12Store st = new Pkcs12Store(new MemoryStream(file), password.ToCharArray());
var alias = st.Aliases.Cast<string>().Where (s => st.IsKeyEntry(s)).Single();
var cert = (X509Certificate)st.GetCertificate(alias).Certificate;

var subjectPKI = SubjectPublicKeyInfoFactory.CreateSubjectPublicKeyInfo( cert.GetPublicKey());
var aki = …
Run Code Online (Sandbox Code Playgroud)

c# security bouncycastle x509certificate x509

4
推荐指数
1
解决办法
4682
查看次数