首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET Core2.1MVC,我们可以在appsetting.json中对控制器设置一个限制吗?WestWind全球化网址

ASP.NET Core2.1MVC,我们可以在appsetting.json中对控制器设置一个限制吗?WestWind全球化网址
EN

Stack Overflow用户
提问于 2018-12-02 19:34:08
回答 1查看 144关注 0票数 0

我的应用程序中有一个处理站点上字符串资源的路径。控制器和操作是由第三方库管理的,因此我不能真正应用授权属性。

我正在使用WestWind全球化库,它生成一个类似于https://localhost:44328/LocalizationAdmin/index.html的URL。

我是否可以像我们在旧的appsetting.json MVC中的web.config中一样,重新字符串web.config中的任何控制器?

类似于ASP.NET核心中下面的内容?

代码语言:javascript
复制
<location path="LocalizationAdmin">
  <system.web>
    <authorization>
      <deny users="*">
    </authorization>
  </system.web>
</location>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-03 01:42:23

Web.configIIS使用。但是ASP.NET Core可以在没有IIS的情况下部署。在与Nginx合作时,没有在appsettings.json中配置授权的方法。

一个更简单的方法是设置一个简单的中间件:

代码语言:javascript
复制
app.Use(async(ctx , next)=>{
    // passby all other requests
    if(!ctx.Request.Path.StartsWithSegments("/LocalizationAdmin")){
        await next();      
    }
    else {
        var user = ctx.User;               // now we have the current user
        var resource = new { /* ... */ };  // construct description as you like
        var authZService = ctx.RequestServices.GetRequiredService<IAuthorizationService>();
        var accessible =await  authZService.AuthorizeAsync(user, resource,"MyPolicyName");
        if(accessible.Succeeded){
            await next();          
        }else{
            ctx.Response.StatusCode = 403;
            await ctx.Response.WriteAsync("not allowed");
        }
    }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53583865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档