因此,我有一些客户端Blazor应用程序,它使用OIDC外部认证的“生产”版本,但在开发过程中,OIDC很慢,我不想等待15 s的每一个调试认证/输入证书引脚,所以我有一些假的auth state provider
,假装用户是认证的,并有一些权限
现在在服务器端,所有控制器都允许匿名,但在生产时
app.MapControllers().RequireAuthorization();
来点刺激安全的把戏。
现在我有一些地方我需要这个OIDC/或假用户名
string login = User.Claims.Where(p => p.Type == "preferred_username").First().Value;
这在PROD萌芽时很好地工作,当开发和伪auth序列不包含元素时-因为我不传递任何令牌来请求当开发如此快速时;我...
因此,问题是如何在服务器端也伪造身份验证?因此,此userclaim在开发期间填充了一些伪造数据?
非常感谢和问候
2条答案
按热度按时间ryevplcw1#
一般来说,我建议您在开发环境中不要做与生产环境中不同的事情,因为那里的bug往往不被注意到,但是如果您找不到任何其他方法,我想您可以使用一些自己的实现来覆盖默认的主体工厂,如下所示:
并将其添加到
Program.cs
中:我没有测试过这个,但我想你明白我的意思。
编辑:我突然想到一个更好的方法可能是只在开发环境中添加这个工厂,所以我稍微修改了一下这个例子。
biswetbf2#
我做了它喜欢在这里和工程罚款-不确定如果最好的选择?请随时评论,如果有人有更好的想法
和启动: