C# 如何使用src属性在html中打开安全的url
我在Azure上有一个API,它比较两个pdf文件并生成一个新的结果pdf。我想使用嵌入标记在html网页中打开生成的pdf。当我把kudu文件url放在嵌入标记的src属性中时,由于安全原因,它无法打开。 当我使用src=“用户名:password@testpdfcomparison.scm.azurewebsites.net/api/vfs/site/wwwroot/pdf/Output.pdf“然后我在浏览器中遇到了这个错误: URL包含嵌入凭据的子资源请求(例如C# 如何使用src属性在html中打开安全的url,c#,html,jquery,azure-web-app-service,kudu,C#,Html,Jquery,Azure Web App Service,Kudu,我在Azure上有一个API,它比较两个pdf文件并生成一个新的结果pdf。我想使用嵌入标记在html网页中打开生成的pdf。当我把kudu文件url放在嵌入标记的src属性中时,由于安全原因,它无法打开。 当我使用src=“用户名:password@testpdfcomparison.scm.azurewebsites.net/api/vfs/site/wwwroot/pdf/Output.pdf“然后我在浏览器中遇到了这个错误: URL包含嵌入凭据的子资源请求(例如https://user:
https://user:pass@主机/
)被阻止。有关更多详细信息,请参阅
实际上我想用静默登录打开这个pdf文件。我可以通过jquery或c通过任何其他方式来实现这一点吗#
这是pdf文件链接:
我不知道为什么您的
.pdf
文件路径包含scm
无论您的程序使用何种语言代码,在当前操作环境下存储在特定文件夹中的生成pdf文件必须使用相对路径。(如果文件较多,建议使用azure存储)
azure webapp中的文件路径包含scm
,因此必须执行授权验证。例如,您提供的文档链接“我的帐户”没有访问权限。如下图所示
事实上,azure应用程序服务本质上是一个iis
。当我们编写代码时,需要存储文件。建议使用相对路径
。文件路径如下所示,我的示例代码是.netcore3.0
您可以,并部署它。您可以访问以下两个URL
https://yourwebsitename.azurewebsites.net/Html/a.html
https://yourwebsitename.azurewebsites.net/api/vfs/site/wwwroot/pdf/testpdf.pdf
我不知道为什么您的
.pdf
文件路径包含scm
无论您的程序使用何种语言代码,在当前操作环境下存储在特定文件夹中的生成pdf文件必须使用相对路径。(如果文件较多,建议使用azure存储)
azure webapp中的文件路径包含scm
,因此必须执行授权验证。例如,您提供的文档链接“我的帐户”没有访问权限。如下图所示
事实上,azure应用程序服务本质上是一个iis
。当我们编写代码时,需要存储文件。建议使用相对路径
。文件路径如下所示,我的示例代码是.netcore3.0
您可以,并部署它。您可以访问以下两个URL
https://yourwebsitename.azurewebsites.net/Html/a.html
https://yourwebsitename.azurewebsites.net/api/vfs/site/wwwroot/pdf/testpdf.pdf
获取pdf内容的服务器端代理端点可能会起作用。将该端点用作
src
,并让它在获取文件时发送凭据。请参见以下内容:@charlietfl您能给我演示一个如何执行此操作的示例吗?实际上,在C#中几乎没有背景。不过,从另一台服务器获取文件是一项常见的任务,一旦获取了文件,就只需输出it@jdweng我只想通过提供credentialServer端代理端点来显示html嵌入或iframe标记上的pdf,以获取pdf内容。将该端点用作src
,并让它在获取文件时发送凭据。请参见以下内容:@charlietfl您能给我演示一个如何执行此操作的示例吗?实际上,在C#中几乎没有背景。不过,从另一台服务器获取文件是一项常见的任务,一旦获取了文件,就只需输出it@jdweng我只是想在html嵌入或iframe标记上显示pdf,为您的宝贵时间提供证书。我没有测试过它,但认为它应该工作感谢您的宝贵时间。我没有测试过它,但认为它应该工作工作
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(Path.Combine(env.ContentRootPath, "Html")),
RequestPath = "/Html"
});
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(Path.Combine(env.ContentRootPath, "PDF")),
RequestPath = "/PDF"
});
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(Path.Combine(env.ContentRootPath, "api")),
RequestPath = "/api"
});
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}