最佳实践:直接SQL访问与Web服务

对于同时具有Web和桌面客户端版本的应用程序: 需要访问SQL Server的桌面客户端的最佳实践是什么? 从应用程序连接到数据库与使用Web服务有什么好处? 哪一个提供更好的安全性? 什么类型的范围将要求一个与另一个(企业内部网与Web应用程序等) 在平台上选择时是否还有其他必要的考虑因素?

MVC – 混合身份validation – OWIN + Windows身份validation

我需要同时具有Windows身份validation和owin(表单)身份validation,但我无法让它工作。 可能最好的选择是让两个站点具有不同的身份validation方法。 我找到了一个能满足我需求的项目: MVC5-MixedAuth 。 但它使用IISExpress,我无法让它与本地IIS一起使用。 发生的错误是: 在Web服务器上配置请求筛选以拒绝请求,因为查询字符串太长。 如果我删除Startup.Auth.cs中的所有ConfigureAuth()方法,它不会抛出错误但我无法登录,因为它需要进行CookieAuthentication 。 Startup.Auth.cs: public void ConfigureAuth(IAppBuilder app) { app.CreatePerOwinContext(dbEmployeePortal.Create); app.CreatePerOwinContext(ApplicationUserManager.Create); app.CreatePerOwinContext(ApplicationSignInManager.Create); app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, LoginPath = new PathString(“/Account/Login”), Provider = new CookieAuthenticationProvider { OnValidateIdentity = SecurityStampValidator.OnValidateIdentity ( validateInterval: TimeSpan.FromMinutes(30), regenerateIdentityCallback: (manager, user) => user.GenerateUserIdentityAsync(manager), getUserIdCallback: (id) => (Int32.Parse(id.GetUserId())) ) } }); app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5)); […]

C#中的多维列表

目前我使用一个列表来存储我的数据的一部分,并且它以这种格式完美地工作: Item —————- Joe Bloggs George Forman Peter Pan 现在,我想在此列表中添加另一行,因为它可以像这样工作: NAME EMAIL —————————————————— Joe Bloggs joe@bloggs.com George Forman george@formangrills.co Peter Pan me@neverland.com 我尝试使用此代码在列表中创建列表,此代码在foreach循环中的另一个方法中使用: // Where List is instantiated List<List> list2d = new List<List> … // Where DataGrid instance is given the list dg.DataSource = list2d; dg.DataBind(); … // In another method, where all people add […]

如何使用IL改变盒装结构

想象一下,我们有一个可变的struct (是的,不要开始): public struct MutableStruct { public int Foo { get; set; } public override string ToString() { return Foo.ToString(); } } 使用reflection,我们可以获取此struct的盒装实例并在框内变异: // this is basically what we want to emulate object obj = new MutableStruct { Foo = 123 }; obj.GetType().GetProperty(“Foo”).SetValue(obj, 456); System.Console.WriteLine(obj); // “456” 我想做的是写一些可以做到这一点的IL – 但速度更快。 我是一个元编程迷; p 取消任何一个值并使用常规IL来改变值是微不足道的 – 但是你不能只是在之后调用它,因为这将创建一个不同的框。 […]

如何在重定向页面之前获取警报消息

我正在使用vs 2010.我需要向用户显示消息并重定向页面。 我使用下面的行。 ScriptManager.RegisterStartupScript(this, this.GetType(), “alert”, ” alert(‘User details saved sucessfully’);window.open(‘frmDisplayUsers.aspx’);”, true); 但我没有得到警报消息,页面被直接重定向。 如何获得提醒信息?

我可以用什么资源来学习分析/优化?

我刚刚inheritance了一个C#项目,该项目运行缓慢,必须开始优化它。 我首先要做的是学习更多关于分析/优化的知识,因为我以前没有这么做。 所以问题是我从哪里开始,我可以阅读哪些书籍/博客/关键词? 我知道像ANTS分析器这样的.net分析器等等,但我不知道如何有效地使用它们。 我还没有真正使用它,只是让它运行在几个示例应用程序上来播放输出。

0MQ:如何以线程安全的方式使用ZeroMQ?

我阅读了ZeroMq指南 ,我偶然发现了以下内容: 您不能在线程之间共享ØMQ套接字。 ØMQ套接字不是线程安全的。 从技术上讲,它可以做到这一点,但它需要信号量,锁或互斥量。 这将使您的应用程序变得缓慢而脆弱。 在线程之间共享套接字远程理解的唯一地方是语言绑定,需要像套接字上的垃圾收集那样做魔术。 后来: 切记: 除了创建它们的线程外,不要使用或关闭套接字。 我也明白ZeroMQ Context是线程安全的。 如果一个类在.Net中注册另一个类的事件,则可以从与创建监听器的线程不同的线程调用此事件。 我认为只有两个选项可以从事件处理程序中通过ZeroMQ-Sockets调度: 将eventhandler-invoking-thread同步到创建ZeroMQ- Socket的线程 通过使用线程安全的ZeroMQ- Context为事件处理程序中的线程创建一个新的ZeroMQ- Socket /获取现有的ZeroMQ- Socket 似乎0MQ-Guide不鼓励第一个,我不认为为每个线程创建一个新的ZeroMq-Socket是高性能/可行的方式。 我的问题 : 在事件处理程序中通过0MQ发布消息的正确模式(它的意图是什么)是什么? 此外,该指南的作者在撰写时还考虑了.Net的ZeroMQ-Binding: 在线程之间共享套接字远程理解的唯一地方是语言绑定,需要像套接字上的垃圾收集那样做魔术。 ? 这里有一些示例代码来强调我的问题/问题: public class ExampleClass { public event EventHandler SomethinIsCalledFromAnotherThread; } public class ByteEventArgs : EventArgs { public byte[] BytesToSend; } public class Dispatcher { ZMQ.Context ctx; public […]

在表达式树中使用可空类型

我有一个扩展方法,使用字符串值动态过滤Linq到实体结果。 它工作正常,直到我用它来过滤可空列。 这是我的代码: public static IOrderedQueryable OrderingHelperWhere(this IQueryable source, string columnName, object value) { ParameterExpression table = Expression.Parameter(typeof(T), “”); Expression column = Expression.PropertyOrField(table, columnName); Expression where = Expression.GreaterThanOrEqual(column, Expression.Constant(value)); Expression lambda = Expression.Lambda(where, new ParameterExpression[] { table }); Type[] exprArgTypes = { source.ElementType }; MethodCallExpression methodCall = Expression.Call(typeof(Queryable), “Where”, exprArgTypes, source.Expression, lambda); return (IOrderedQueryable)source.Provider.CreateQuery(methodCall); } […]

entity framework6.1.1禁用模型兼容性检查

将EF更新到版本6.1.1后,我遇到以下错误: EntityFramework.dll中发生了未处理的“System.InvalidOperationException”类型exception 附加信息:自创建数据库以来,支持TvstContext上下文的模型已更改。 请考虑使用“代码优先迁移”来更新数据库( http://go.microsoft.com/fwlink/?LinkId=238269 )。 我们可以在这个问题中描述过去解决这个问题: EF CTP5中的modelBuilder.IncludeMetadataInDatabase在哪里? 但是,我似乎无法摆脱错误。

如何检查DateTime.Now是否在两个给定的DateTimes之间仅用于时间部分?

对于我的应用程序,我需要知道Now()是否介于两个值之间。 用户可以设置开始时间和结束时间,这样他就不会被通知打扰(例如在夜间)。 因此,如果有两个TimePicker (开始和结束时间),用户可以设置。 假设用户将StartTime设置为22:00 07:00 , EndTime设置为07:00 (这将覆盖夜晚)。 如何检查DateTime.Now是否在选定的开始和结束时间之间? 编辑:我只希望这与小时和分钟部分一起使用。 因此,如果用户设置开始和结束时间,这应该适用于每晚。