小编Jam*_*ter的帖子

一个包含规则引擎的系统是否真的成功了?

我们的系统(外来商品衍生品贸易捕获和风险管理)很快就会重新开发.我听到的一个建议是,将整合一个规则引擎,使最终用户(商品交易者,如此相当复杂)更容易对业务逻辑进行某些更改.

我对规则引擎有点怀疑.我的敏捷主义者想知道它们是否只是一个过程问题的技术解决方案......即.我们的开发人员需要很长时间来响应业务变更的需求.该问题的解决方案应该是更加协作的开发方法,更好的测试覆盖率,更全面的敏捷实践.

听取规则引擎真正有利的情况(特别是在交易环境中)肯定会有所帮助.

rule-engine

18
推荐指数
3
解决办法
3402
查看次数

WebRequest.CachePolicy应该在IIS中运行的代码中运行吗?

我有一些代码在ApiController(ASP.Net Web API)中运行,它本身想要向另一个Web服务发出GET请求.Web服务(也是我的应用程序的一部分)返回Cache-Control标头,指示它返回的内容的到期时间.

我正在使用new System.Net.Http.HttpClient,配置了a WebRequestHandler以便使用客户端缓存(默认情况下HttpClientHandler不支持缓存配置,尽管它确实System.Net.WebRequest用作其底层HTTP实现):

var client = new HttpClient(new WebRequestHandler { 
  UseDefaultCredentials = true,
  CachePolicy = new RequestCachePolicy(RequestCacheLevel.Default)
});
var response = client.GetAsync("someUri").Result;
response.EnsureSuccessStatusCode();
Run Code Online (Sandbox Code Playgroud)

在服务器上,我通过...在我的控制器操作中启用缓存...

var response = new HttpResponseMessage(HttpStatusCode.OK);
response.Headers.CacheControl = new CacheControlHeaderValue {
  Public = true,
  MaxAge = new TimeSpan(0, 5, 0); // Five minutes in this case
};

// Omitted, some content is added to the response
return response;
Run Code Online (Sandbox Code Playgroud)

上述(缩写)代码在测试中正常工作; 我以这种方式多次调用服务,只有第一个调用实际联系服务(通过IIS中服务的日志消息观察); 后续调用使用缓存.

但是,运行在IIS本身上托管的相同代码,似乎HttpClient忽略了缓存结果(我还设置了我的IoC容器,使得HttpClientAppDomain 中只存在一个实例)并且每次都调用该服务.这是作为AppPoolIdentity运行的.

有趣的是,如果我将应用程序池更改为以NetworkService身份运行,则响应的状态代码为401 …

c# webrequest asp.net-web-api dotnet-httpclient

6
推荐指数
1
解决办法
1588
查看次数

邮件客户端凭据流与Azure AD保护的资源

我目前正在使用这个例子

https://docs.microsoft.com/en-us/azure/active-directory/active-directory-authentication-scenarios#daemon-or-server-application-to-web-api

在Azure AD中使用OAuth检查客户端凭据流.从理论上讲,这个例子可行.客户端应用程序成功与服务器App通信,首先从Azure AD令牌URL获取OAuth令牌.没有问题.但是,我正在尝试使用Postman检查客户端凭据流,但我无法使其工作.

在邮递员中,我应该提供访问令牌URL,客户端ID客户端密钥,授权类型设置为客户端凭据.使用与https://github.com/Azure-Samples/active-directory-dotnet-daemon中的Microsoft示例提供的示例中相同的参数,在尝试访问Web服务时收到401响应.我认为主要原因是因为在邮递员中,我无法输入我想要访问的资源,因此收到的令牌不会"链接"到任何资源,这就是为什么授权在Web服务器中失败的原因?这可能是原因吗?如果这是原因,那么我应该在服务器中做什么,因为,不知何故,似乎Postman的要求应该是客户端凭据流中的有效要求(我的意思是,根据OAuth2客户端凭据,不应该给出任何资源)流,对吗?

这是从Microsoft示例下载的示例中的Starup类的代码

    // For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864
    public void ConfigureAuth(IAppBuilder app)
    {
        app.UseWindowsAzureActiveDirectoryBearerAuthentication(
            new WindowsAzureActiveDirectoryBearerAuthenticationOptions
            {
                Audience = ConfigurationManager.AppSettings["ida:Audience"],
                Tenant = ConfigurationManager.AppSettings["ida:Tenant"]
            });
    }
Run Code Online (Sandbox Code Playgroud)

ConfigurationManager.AppSettings ["ida:Tenant"]是我的Azure AD帐户,而 ConfigurationManager.AppSettings ["ida:Audience"]是我需要访问的受保护资源.这两个值都是必需的.如果我没有提供受众,我在.net web api初始化中收到错误.

.net authentication oauth-2.0 asp.net-web-api azure-active-directory

6
推荐指数
1
解决办法
4548
查看次数

如何在运行时创建WPF UserControl的映像

我创建具有一个WPF应用程序Canvas上,我把UserControls它们是由用户(就像Windows的窗口)可移动和调整大小.现在我已经发现这对于旧PC而言可能非常慢,这是一个问题.

作为一个解决方案,我考虑生成一个显示UserControl的图形,并在调整Control/draging时显示,以防止WPF永久重新计算所有元素.唯一的问题是我不知道如何生成这个图像.

是否有类似于.Net的功能?或者我怎么能自己做?

c# wpf optimization user-controls wpf-controls

5
推荐指数
1
解决办法
2万
查看次数

在Excel-DNA中标记功能IsMacroType的优点/缺点是什么?

仅当函数的ExcelFunction属性指定时,Excel-DNA才允许多次调用Excel的XLL API IsMacroType=true。我不清楚的是为什么仅将其添加到我的所有函数中并用它完成不是一个好主意;为什么?我假设不是默认值。

与Excel本身的函数计算的可变性有关吗?如果网上有不错的资源描述IsMacroType=true我的优缺点,我希望看到它!

excel-dna

2
推荐指数
1
解决办法
886
查看次数

在Active Directory中存储公共网站的用户

我正在为基金/养老金经理制定系统架构.我们提供两个ASP.NET MVC Web应用程序; 一个允许养老基金的成员登录和检查他们的余额,管理他们的投资等,另一个允许雇主代表雇员(成员)向基金捐款.还有通过Intranet提供的内部应用程序.

我们一直在考虑使用Active Directory来存储,认证/授权不仅是内部用户(已经使用AD登录域和资源授权),而是用于成员和雇主用户帐户.成员和雇主用户帐户将位于内部用户的不同层次结构(甚至可能是不同的AD实例?)中.

但是我想知道这是否是AD的最佳用例......鉴于AD是一种"内部"资源,它是否应该用于保存"外部"用户的auth详细信息(替代方案是数据库中的USERS表) )?

好处是:AD专为保存此类数据而设计和优化,ASP.NET应用程序可轻松集成AD授权,可能存在用于处理数据的现有工具(密码重置等).

有什么风险?

architecture authentication authorization web-applications active-directory

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