我正在尝试锁定对 Razor Pages 应用程序中选定区域中所有页面的访问。到目前为止,我有这个示例结构
地区
帐户
商业
如果我添加
options.Conventions.AuthorizeFolder("/business", "/index");
Run Code Online (Sandbox Code Playgroud)
启动时,它以每页为基础工作,但我看不到任何明确的方法来锁定整个 Business 文件夹。我试过这里提到的基于文件夹的选项
但似乎没有一个工作。这甚至可能吗?
我刚刚开始试用Autofac,我觉得我在解决具体课程时感到困惑.
我已设法将我的接口注册到我的Concrete类,如下所示
builder.RegisterType<TestClass>().As<ITest>();
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
Run Code Online (Sandbox Code Playgroud)
这很好.我遇到的问题是如何在我的mvc控制器中获取此实例?我读过的大多数内容都说我需要创建一个新的ContainerBuilder实例,然后调用scope.Resolve方法,但这肯定是不好的做法,并且每个控制器都不需要它?
我认为混淆是何时以及如何访问'Container',以便我可以在需要时调用resolve方法.
你可能已经猜到了,我是这里的新手!
我正在创建一个简单的WebApi,允许用户与Facebook连接.当我从facebook获取accessToken时,我正在调用RegisterExternal来创建Asp.Net Identity记录并存储来自令牌的声明.这些声明还包括我稍后查询facebook图表所需的访问令牌.到目前为止,一切似乎都很好.
我遇到的问题是阅读索赔.我可以看到他们在我的数据库中我只是想弄清楚如何查询这些数据.我试过了
var claimsIdentity = User.Identity as ClaimsIdentity;
Run Code Online (Sandbox Code Playgroud)
但这让我得到了2个声明a)" http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name "b)角色
这两个都是发行人LOCAL AUTHORITY(说实话,我不确定它们何时被创建,因为我没有明确添加这些).因此,我认为他们要么将我对数据库的索赔再次保存在错误类型的发行人身上,要么是混乱
await userManager.AddClaimAsync(user.Id, new Claim("urn:facebook:access_token", accessTokenClaim.Value, ClaimValueTypes.String, "LOCAL AUTHORITY"));
Run Code Online (Sandbox Code Playgroud)
或者我访问索赔的代码不正确.
任何人都可以对此有所了解吗?
asp.net facebook claims-based-identity oauth-2.0 asp.net-web-api