.net AddWebEncoders()如何与AZ函数一起使用?

3vpjnl9f  于 2023-11-20  发布在  .NET
关注(0)|答案(1)|浏览(127)

我正在写一个简单的HTTP触发器az函数,我遇到了AddWebEncoders()。注解表明它将HTMLEncoder添加到服务中。
我有它作为:

  1. var host = new HostBuilder()
  2. .ConfigureFunctionsWorkerDefaults()
  3. .ConfigureServices(services =>
  4. {
  5. services.AddTransient<IDataService, DataService>();
  6. services.AddWebEncoders();
  7. })
  8. .Build();
  9. host.Run();

字符串
我如何在我的DataService中使用这个Web编码器?即使没有services.AddWebCoders(),我也可以在下面的示例中编码我的字符串。是否有某种接口可以DI到我的服务类中?

  1. public class DataService : IDataService
  2. {
  3. public DataService() { }
  4. public async Task<string> GetHtmlData()
  5. {
  6. string encodedData = HtmlEncoder.Default.Encode("<img src=x onerror=confirm(\"HACKED\")>");
  7. return await Task.FromResult(encodedData);
  8. }
  9. }

jckbn6z7

jckbn6z71#

我正在寻找一个在DI中使用的接口,但你应该能够使用任何DI类,在这种情况下,HTMLEncoder是一个抽象类,所以我只是将它DI到我的服务中,并正常使用它。
下面是答案:

  1. public class DataService : IDataService
  2. {
  3. private readonly HtmlEncoder _htmlEncoder;
  4. public DataService(HtmlEncoder htmlEncoder) {
  5. _htmlEncoder = htmlEncoder;
  6. }
  7. public async Task<string> GetHtmlData()
  8. {
  9. string encodedData = _htmlEncoder.Encode("<img src=x onerror=confirm(\"HACKED\")>");
  10. return await Task.FromResult(encodedData);
  11. }
  12. }

字符串

展开查看全部

相关问题