如何强制/设置MVC Core中所有操作的全局授权?
我知道如何注册全局过滤器 - 例如我有:
Setup.cs
services.AddMvc(options =>
{
options.Filters.Add(new RequireHttpsAttribute());
});
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我无法为授权添加相同的内容:
options.Filters.Add(new AuthorizeAttribute());
我有错误:
Cannot convert from 'Microsoft.AspNet.Authorization.AuthorizeAttribute()' to 'System.Type'
(方法.Add()需要IFilterMetadata类型)
我知道 - 从类似的问题 - 这适用于MVC4-5 ......所以必须在MVC Core上改变...
有人有什么想法吗?
在ASP.NET Core MVC(以前称为MVC 6)中,有一个名为View Components的新功能区域,它似乎是部分视图的更好替代方案.我见过以下View Component Example.但目前似乎没有更多关于其使用的信息.
我正在尝试评估它是否值得使用这种模式,如果这可以/(或打算)被用作更好的方法来帮助甜甜圈缓存.
我正在尝试使用Windows IoT创建在Raspberry Pi 3上运行的Asp.Net Core RC2站点.
我找到了以下教程:https: //www.hackster.io/iddi/windows-10-iot-core-publish-asp-net-web-application-d9dcd4
但这是针对RC1的.那么RC2已经有了一个教程,有没有人这样做过?
第二个问题是,您可以在Windows IoT上调试asp.net核心站点吗?
谢谢你的帮助.
问候马库斯
我正在.NET Core 1.1中构建一个API.我在基本控制器中构建了一个自定义User对象HttpContext.User,我的所有其他控制器都是从该控制器继承的,并且我默认启用了身份验证(必须[AllowAnonymous]在必要时手动禁用).该User对象具有IsAdmin属性.现在我正在检查用户是否是每个相关功能顶部的管理员,如下所示,但我觉得必须有一种方法来添加自定义属性来简化和清理此代码.
供参考,User.IsAdmin是这方面的简写:
bool.Parse(HttpContext.User.FindFirst("IsAdmin")?.Value)
Run Code Online (Sandbox Code Playgroud)
而不是这个:
[HttpGet]
public async Task<IActionResult> Get()
{
if (!User.IsAdmin)
return Forbid();
// logic
}
Run Code Online (Sandbox Code Playgroud)
我喜欢这个(或类似的东西):
[AdminOnly]
[HttpGet]
public async Task<IActionResult> Get()
{
// logic
}
Run Code Online (Sandbox Code Playgroud)
我试着查看源代码[AuthorizeAttribute]来尝试构建,但它只是一个shell而且我不知道真正的魔法在哪里发生.
我怎么能做到这一点?
我的应用程序有带有笔记的墙壁。我希望添加活动墙的布局名称。怎么做?我知道在前端我可以只使用 @Model...但是谁发送这个模型?另外更好的想法是将此信息存储在会话变量中或在用户数据库中创建另一个属性?
编辑:我使用.NET Core 1.1。