有没有办法在 Azure blob 文件存储上实现 IT HIT WebDAV?我们真的不想购买虚拟机来这样做,我们已经在 Azure 上运行了 Web 应用程序,我们希望将所有文档/文件存储在 Azure 文件存储上。任何帮助将不胜感激。
我需要在我的应用程序中使用 webdav,但我有一个与 azure blob 存储支持相关的问题。
是否可以将 azure blob 存储与 webdav 集成?
我们希望在 ASP.NET Core WebDAV 服务器示例 ( https://www.webdavsystem.com/server/server_examples/cross_platform_asp_net_core_sql/ ) 中实现 MS-OFBA 。该示例已经具有用于基本和摘要身份验证的代码,但我们需要支持 MS-OFBA。
我已经实现了一个类似于现有基本和摘要中间件类的 MSOFBAuthMiddleware 类,如果它是来自 Office 应用程序的请求,我们会在其中设置所需的“X-FORMS_BASED_AUTH_”标头。
这在一定程度上起作用:
最初我们一直在尝试使用本地登录页面,但最终我们更愿意使用我们现有的 Identity Server 登录页面。我们可以再次显示登录页面,但重定向不起作用。
在登录后的身份服务器中,我们应该重定向到“/connect/authorize/login?client_id=mvc.manual&response_type=id_token&scope=openid%20profile%20&redirect_uri=http%3A%2F%2Flocalhost%3A5000%2Faccount%2Fcallback&state=random_state&nonce=random_no form_post”,但实际上我们被重定向到应用程序“/”的根目录。
更新:我已经解决了这个重定向问题,Identity Server 现在重定向到正确的 URL,但中间件中的 httpContext.User.Identity.IsAuthenticated 值仍然始终为 false。
Startup.cs(部分)
public void ConfigureServices(IServiceCollection services)
{
services.AddWebDav(Configuration, HostingEnvironment);
services.AddSingleton<WebSocketsService>();
services.AddMvc();
services.Configure<DavUsersOptions>(options => Configuration.GetSection("DavUsers").Bind(options));
services.AddAuthentication(o =>
{
o.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
o.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
o.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
}
).AddCookie(CookieAuthenticationDefaults.AuthenticationScheme);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment())
app.UseDeveloperExceptionPage();
//app.UseBasicAuth(); …Run Code Online (Sandbox Code Playgroud) 我正在使用 IT HIT WebDAV 引擎和 .net 5 为基于数据库的 ECM 系统开发 WebDAV 连接。
我已将 WebDAV 映射到资源管理器中的网络驱动器。
当我在资源管理器中列出所有驱动器时,WebDAV 驱动器的总大小和可用空间错误地显示与 C 驱动器相同的值。
据我所知,WebDAV 服务器发送回资源管理器 (Microsoft-WebDAV-MiniRedir/10.0.19042) 的响应根本不包含有关总大小或可用空间的任何信息。是否可以在 WebDAV 响应中发送此数据(是否有任何特殊属性)?或者是否有可能让资源管理器显示,如果不是正确的值,那么根本没有值?
我目前正在升级我们以前的 webdav 实现以使用 IT-HIT。
在这个过程中我注意到文件的读操作可以请求整个文件或其中的一部分。我想知道是否有办法强制要求始终请求整个文件。我们的 webdav 处理小文件,并且不需要它。
我问是因为在我使用的文档(Java 客户端版本 3.2.2420 )中,我认为它只为写操作指定了它。
谢谢你的帮助。