我正在使用.NET Core 2.0对IdentityServer4应用程序进行基本的读写功能,并遇到了一个问题。尝试加载客户端时,ValidateAntiForgeryToken属性似乎会破坏我的更新。
我知道EF核心不支持延迟加载,所以我们使用的是Unit Of Work模式。我会为Client,ClientScopes,Secrets等创建单独的存储库,并为每个存储库获取数据。我将传入一个Func<>在抓取ClientScopes等时允许过滤。所以方法调用看起来像这样
ClientScopeResitory.GetAll(a => a.Client.Id == id)
然后会像这样访问dbset
public IEnumerable GetAll(Func<T, object> predicate == null)
{
return predicate != null ? dbset.Where(predicate) : dbset
}
我的问题是在我的阅读操作中加载客户端时这很好用。但是,当我的更新中使用相同的代码时,ValidateAntiForgeryToken存在,它会中断。发生的事情是在读取期间创建存储库,客户端使用dbset加载。但是,在更新中,客户端不是。删除ValidateAntiForgery属性时。客户端再次加载,更新工作正常。任何人都有任何想法发生了什么。我可以根据要求提供完整的代码。提前谢谢。
另外,我为任何糟糕的语法或拼写道歉,我匆匆写了这个