要求对OWIN应用程序的所有请求进行身份validation

我正在使用自托管的OWIN应用程序,并试图找出如何要求所有请求(或任意请求)的身份validation/授权。 管道中的一些单独组件有自己的授权工具(例如WebAPI,SignalR,Nancy),但是当我想限制所有内容时,这似乎有点多余。 此外,某些中间件没有授权支持(例如Microsoft.Owin.StaticFiles)。 如果我的OWIN Startup看起来像这样: public class Startup { public void Configuration(IAppBuilder app) { app.RequireSsl(); app.UseCookieAuthentication(new CookieAuthenticationOptions()); //… app.UseGoogleAuthentication(); // ** Need to add something that restricts access ** app.UseDirectoryBrowser(); } } 在提供目录浏览器之前,如何要求用户进行身份validation(必要时重定向)? (目录浏览器可以任意为其他OWIN组件。)

entity framework6.1.0 SaveChangesAsync

我有EF助手类保存更改异步: public async Task SaveOrUpdateAsync(TEntity entity) where TEntity : class, IContextEntity { if (entity.Id == 0) context.Set().Add(entity); else { TEntity dbEntry = context.Set().Find(entity.Id); if (dbEntry != null) dbEntry = entity; } return await context.SaveChangesAsync(); } public void Save() { Task saveEntit1Async = repository.SaveOrUpdateAsync(entity1); Task saveEntity2Async = repository.SaveOrUpdateAsync(entity2); Task saveEntity3Async = repository.SaveOrUpdateAsync(Entity3); Task.WaitAll(saveEntit1Async, saveEntity2Async, saveEntity3Async); string […]

C#从另一个线程调用form.show()

如果我从另一个线程调用WinForms对象上的form.show() ,表单将抛出exception。 我可以通过何种方式向主应用程序线程添加新的可见表单? 否则,如何在不停止当前正在执行的线程的情况下打开表单? 这是我的示例代码。 我试图启动一个线程,然后在该线程中执行一些工作。 随着工作的进展,我将展示表格。 public void Main() { new Thread(new ThreadStart(showForm)).Start(); // Rest of main thread goes here… } public void showForm() { // Do some work here. myForm form = new myForm(); form.Text = “my text”; form.Show(); // Do some more work here }

是否可以在C#中扩展数组?

我习惯于向IEnumerable等外部类添加方法。 但是我们可以在C#中扩展数组吗? 我打算为数组添加一个方法,即使它是多维的,也可以将它转换为IEnumerable。 与如何在C#中扩展数组无关

控制Hide()和Visible之间的区别?

我想知道使用Control的Hide()方法与将Visible属性设置为false之间的区别。 我什么时候想要使用另一个?

使用SQLDependency与表的定期轮询(性能影响)

在我们的应用程序开发之初,我们非常大量地使用SQLDependency来缓存数据库结果,直到通知告诉我们的应用程序获取新副本。 在测试期间,我们注意到sql db的性能受到sqldependency通知服务的打击。 我们缩减了使用sqldependency的表的数量,并注意到性能的大幅提升。 所以,我们认为我们刚刚过度使用它,我们继续前进。 我们现在只有几张桌子。 后来我们发现我们无法缩减将建立依赖关系的用户名的安全访问级别。 我们可以为每个数据库设置多个连接字符串(一个用于依赖项,一个用于应用程序的其余部分)但是使用多个数据库和数据库镜像,这很痛苦(从sql db管理角度和应用程序开发) 在这一点上,我们只是考虑基于以下逻辑完全脱离SQLDependency: 我们不需要数据发生变化的“即时”通知。 如果我们在1秒钟内知道,那就足够快了。 通过一些轻微的重新分解,我们可以将其降低到只有1个表并每秒轮询该表一次。 有没有人看到这个逻辑的缺陷? 每秒轮询一个表会导致数据库上的负载多于或少于SQLDependency吗? 是否有人与SQLDependency有类似的性能问题?

DateTime字符串解析

我已经为解析ascii文件做了一个通用的解析器。 当我想解析日期时,我使用DateTime对象中的ParseExact函数来解析,但是我遇到了年份的问题。 要解析的文本是“090812”,其中parseExact字符串为“yyMMdd”。 我希望得到一个DateTime对象说“12 / 8-2009”,但我得到“12 / 8-1909”。 我知道,我可以通过以后解析它来制作一个丑陋的解决方案,从而修改年份.. 有谁知道解决这个问题的聪明方法? 提前致谢.. 索伦

Azure中的时间戳查询

我真的陷入了对Azure表存储的查询filter。 我可以知道如何查询时间戳吗? 当我单独查询分区键1005时,我得到了我不想要的完整表。 当我添加带有时间戳的“和”条件时(尝试了很多格式,但它没有返回任何内容。下面的代码片段: var lowerlimit = DateTime.Today.AddDays(-52).ToString(“yyyy-MM-dd”); string dateRangeFilter = TableQuery.CombineFilters( TableQuery.GenerateFilterCondition(“PartitionKey”, QueryComparisons.Equal, “1005”), TableOperators.And, TableQuery.GenerateFilterCondition(“TimeStamp”, QueryComparisons.GreaterThanOrEqual, lowerlimit));

将项添加到AddIn中的visual studio文件夹右键菜单

我想在visual studio 2012解决方案资源管理器中右键单击=>添加菜单添加一个menuitem。 单击自定义项目时,我可以使用我的模板添加项目。 我开发了一个Visual Studio加载项来实现它,但是我遇到了一些麻烦。 我可以在右键菜单中添加一个menuitem,但我无法满足我的要求。 menuitem应该是“Add”的子菜单。 不是根项目。 我还需要menuitem才能在我右键单击名为“Areas”的文件夹时显示。 当我右键单击其他文件夹时,我不希望它显示。 这是我的OnConnectionfunction代码。 如何更改它以满足我的要求。 public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) { _applicationObject = (DTE2)application; _addInInstance = ((AddIn)addInInst); if (connectMode == ext_ConnectMode.ext_cm_UISetup) { object[] contextGUIDS = new object[] { }; Commands2 commands = (Commands2)_applicationObject.Commands; //Place the command on the tools menu. //Find […]

目录修改监控

我正在构建一个C#应用程序,它将监视指定的目录以进行更改和添加,并将信息存储在数据库中。 我想避免检查每个单独的文件进行修改,但我不确定我是否完全可以信任文件访问时间。 在目录中获取最近修改过的文件的最佳方法是什么? 它只会在用户询问时检查修改,它不会是一个持续运行的服务。