ASP.Net Identity正在对每个请求执行以下查询.我没有更改创建MVC项目时生成的任何身份代码.我的Startup.Auth.cs代码如下.
请注意,validateInterval设置为TimeSpan.FromMinutes(30).另请注意,Cookie expiration正在显式设置(ExpireTimeSpan)设置为TimeSpan.FromMinutes(30).我在SO上发现了一个类似的问题,其回答表明TimeSpan.FromMinutes(30)应该足以阻止ASP.Net Identity在每次请求时联系DB.
我在这里错过了什么?
Startup.Auth.cs
public partial class Startup
{
public void ConfigureAuth(IAppBuilder app)
{
// Configure the db context, user manager and signin manager to use a single instance per request
app.CreatePerOwinContext(ApplicationDbContext.Create);
app.CreatePerOwinContext < ApplicationUserManager > (ApplicationUserManager.Create);
app.CreatePerOwinContext < ApplicationSignInManager > (ApplicationSignInManager.Create);
// Enable the application to use a cookie to store information for the signed in user
// and to …Run Code Online (Sandbox Code Playgroud) 当我将请求发布到其余 api 时,程序将崩溃并且线程将被中止。请指教。
public async Task<TResponse> Post<TRequest, TResponse>(string method, TRequest request)
{
JsonMediaTypeFormatter jsonFormat = new JsonMediaTypeFormatter
{
SerializerSettings =
{
ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore,
NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore,
PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.None
}
};
var response = await _httpClient.PostAsync(_baseUrl + method, request, jsonFormat);
var finalResponse = await response.Content.ReadAsAsync<TResponse>();
return finalResponse;
}
Run Code Online (Sandbox Code Playgroud)
请注意,不会向服务器发送任何请求。顺便说一下,_httpClient 将被定义如下
_httpClient =
new HttpClient(new HttpClientHandler
{
AutomaticDecompression =
System.Net.DecompressionMethods.GZip | System.Net.DecompressionMethods.Deflate
})
{Timeout = TimeSpan.FromSeconds(50)};
_httpClient.DefaultRequestHeaders.Add("Authorization", "apikey " + apiKey);
Run Code Online (Sandbox Code Playgroud) 就在最近,我一直在尝试新的asp.net功能并遇到了这个问题。我知道我们可以将配置读取为强类型实例。但是我不知道如何在Microsoft依赖项注入中将配置注入到类中。
public interface IProvider
{
IMyConfiguration Configuration {get;}
Task Connect();
}
public abstract class Provider: IProvider
{
private IMyConfiguration _myConfig;
public Provider(IMyConfiguration config)
{
this._myConfig= config;
}
public IMyConfiguration Configuration => _myConfig;
public abstract Task Connect();
}
public class ProviderOne:Provider
{
public ProviderOne(IMyConfiguration config) : base(config)
{
}
public Task Connect()
{
//implementation
}
}
Run Code Online (Sandbox Code Playgroud)
配置类:
public interface IMyConfiguration
{
string TerminalId { get;set; }
bool IsDefault {get;set;}
}
public class MyConfiguration : IMyConfiguration
{
string TerminalId { get;set; } …Run Code Online (Sandbox Code Playgroud) 当我在软件项目中实践 DDD 时,我总是面临这样的问题:“为什么我应该在实体中实现我的业务规则?它们不应该是纯数据模型吗?”
请注意,根据我对 DDD 的理解,领域模型可以由持久模型和值对象组成。
我提出了一个解决方案,将持久模型与域模型分开。另一方面,我们有数据传输对象 (DTO),因此我们有 3 层数据映射。数据库到持久性模型、持久性模型到域模型以及域模型到 DTO。在我看来,我的解决方案不是一个有效的方案,因为必须付出太多的努力。
那么有没有更好的做法来实现这个目标呢?
可以说我有一个类似下面的课程
public Class Person
{
public string Firstname { set; get; }
public string Lastname { set; get; }
}
Run Code Online (Sandbox Code Playgroud)
这是一个问题,如何从Person类中获取实例,如下所示?
Person p = "AAAA BBBB";
Run Code Online (Sandbox Code Playgroud)
所以现在,Firstname等于AAAA,Lastname等于BBBB,我不想在我的类中使用构造函数,首先,是否可以这样做?那怎么样?