Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
保护Blazor webassembly源_Blazor_Blazor Client Side - Fatal编程技术网

保护Blazor webassembly源

保护Blazor webassembly源,blazor,blazor-client-side,Blazor,Blazor Client Side,我使用Visual Studio模板使用identity server创建了.NET Core托管的Blazor webassembly项目。如果我希望整个Blazor编译的客户端代码只对经过身份验证的用户可用,你知道我应该如何更改配置吗 现在,每个人都可以访问客户端应用程序编译的代码,即使我使用[Authorize]保护所有Blazor路由,因为单页应用程序作为单个实体下载到浏览器中。我不想将编译后的代码公开给那个些甚至并没有访问应用程序权限的用户 将其移动到服务器端托管模型。这就像任何其他纯

我使用Visual Studio模板使用identity server创建了.NET Core托管的Blazor webassembly项目。如果我希望整个Blazor编译的客户端代码只对经过身份验证的用户可用,你知道我应该如何更改配置吗


现在,每个人都可以访问客户端应用程序编译的代码,即使我使用
[Authorize]
保护所有Blazor路由,因为单页应用程序作为单个实体下载到浏览器中。我不想将编译后的代码公开给那个些甚至并没有访问应用程序权限的用户

将其移动到服务器端托管模型。这就像任何其他纯粹的客户机SPA一样——您的代码进入客户机,客户机可以读取它

也许你可以使用lib拆分你的应用,因为这在框架中还不可用。并使用自定义的middlewareYes保护您的文件,每个用户都可以读取SPA客户端代码,但应该有一种方法将SPA捆绑包限制为只能登录的用户。我认为这是一个基本的要求,当公司内部的应用程序在公共互联网上提供。没有人希望他们的竞争对手能够检查他们的应用程序客户端功能。在允许加载主客户端应用程序包之前,应该有一种单独登录的方法。好吧,没有,也许可以向MS提出一个问题,或者找到一个现有的问题。这与在“普通”SPA中下载app.js是一样的——即使没有正确的设置,并非所有视图都可以渲染,所有这些都将由客户端完成。普通SPA.js捆绑包只能在登录后才能使用。您只需要在SPA.js捆绑包之外实现登录功能,并且只允许登录用户加载捆绑包。Microsoft也应该为Blazor webassembly记录这样的想法,因为我100%确信大多数公司都喜欢保护他们的捆绑包不被匿名访问。我的类比可能不完整。假设您的spa.js只是一个用于身份验证和非身份验证部分的文件——这就是blazor目前的情况。您可以将组件和业务逻辑分离为多个程序集,您可能会进行一些web服务器欺骗,以允许仅为经过身份验证的用户加载某些程序集,但这些401将在blazor应用程序第一次加载时初始化时破坏它。不过,企业内部员工可能会使用服务器端blazor。如果他们给他们提供WASM应用程序(可能是PWAs),那么有什么区别呢……继续下去,因为有恶意意图的员工可能会进行身份验证,然后获取源代码。然后,如果这是一个面向公众的应用程序,你应该将敏感数据放在经过身份验证的RESTAPI后面,并且只有在经过身份验证后才发送出去——在客户端上根本没有秘密。