我有一个ASP.NET应用程序,我也想用它作为类库.(这是使用Windsor的WCF工具的.svc文件的Castle Windsor应用程序,但与使用ASPX页面和其他公共类的任何其他Web应用程序的情况相同.)
我实际上想使用"类库"或"WCF库"项目模板,因为这允许我选择单独的调试和发布文件夹等.但这不会让我添加Global.asax文件.
所以我切换到"Web应用程序"模板,这没关系.但是,如果我配置单独的调试和发布文件夹,则Web应用程序将无法运行.
看起来Web应用程序需要程序集直接驻留在"bin"目录中,而不是"bin\debug"中.
有没有办法实现这两者,即在Visual Studio中单独构建文件夹和调试支持?
我不介意在IIS中设置本地Web应用程序,因此它不必是集成Web服务器.
.net asp.net visual-studio visual-studio-debugging visual-studio-2012
我有一个 ASP.NET Core 2.2 应用程序,在其中显示一些文档。大多数文档都是公开的,因此匿名访问是可以的。但是,某些文档是私有的(即它们需要身份验证/授权),并且将来某些文档可能还需要有效的订阅。所有文档都使用相同的操作进行检索,因此我们只有在加载文档后才知道所需的权限。我们还加载一些资源作为静态文件(IApplicationBuilder.UseStaticFiles),但我想这实际上不应该成为问题,因为StaticFileOptions.OnPrepareResponse可以用于自定义授权代码。
目前谁可以访问私人文档的逻辑非常简单。目前,我们只显示文档,不允许对其进行任何其他类型的操作(编辑、删除等)。对我来说,这听起来像是基于资源的授权的一个非常标准的案例。
不管怎样,我找到了这篇文章,根据我的理解,我需要定义一个策略(由一个神奇的字符串标识 - 这是怎么回事?!)以及一个要求和一个AuthorizationHandler<MyRequirement, MyResource>将执行实际授权逻辑的要求。然后,在我的控制器操作中,我需要调用IAuthorizationService.AuthorizeAsync并传递用户、资源和策略名称(魔术字符串),并根据该方法的结果允许或拒绝访问。对于我想要完成的任务来说,这似乎更加复杂。如果我简单地定义自己的“授权服务”并简单地删除整个策略和要求内容,可能会更容易。我还认为,我必须在所有受影响的控制器操作中复制 if-else 逻辑,这不太理想。
当然我不是唯一一个有这个问题的人。有什么我错过的吗?如果确实有充分的理由使用政策和要求,那么在这种情况下您会如何命名它们?我真的感觉有点失落。也许使用文档类型(公共、私有、仅限订阅者)作为策略名称有意义?