Asp.net mvc 5 CKfinder-动态用户文件夹-Asp.net MVC 5

Asp.net mvc 5 CKfinder-动态用户文件夹-Asp.net MVC 5,asp.net-mvc-5,ckeditor,ckfinder,Asp.net Mvc 5,Ckeditor,Ckfinder,我正在使用Asp.NETMVC5构建一个web应用程序。我下载了用于ASP.NET的Ckeditor和CKfinder连接器。我能够按照说明操作,让Ckeditor和Ckfinder集成工作 我试图找出如何在CkFinder中为每个登录用户设置动态文件夹目录。根据中提供的说明,它告诉您在connectorBuilder.SetRequestConfiguration中执行此操作。问题是ConnectorBuilder正在启动时安装,用户在此之后登录 这是我现在拥有的代码,除了图标之外,所有东西都

我正在使用Asp.NETMVC5构建一个web应用程序。我下载了用于ASP.NET的Ckeditor和CKfinder连接器。我能够按照说明操作,让Ckeditor和Ckfinder集成工作

我试图找出如何在CkFinder中为每个登录用户设置动态文件夹目录。根据中提供的说明,它告诉您在connectorBuilder.SetRequestConfiguration中执行此操作。问题是ConnectorBuilder正在启动时安装,用户在此之后登录

这是我现在拥有的代码,除了图标之外,所有东西都可以工作

使用DearColleagueV2.模型;
[程序集:Microsoft.Owin.OwinStartup(typeof(DearColleagueV2.Startup))]
名称空间DearColleagueV2
{
使用系统配置;
使用CKSource.CKFinder.Connector.Config;
使用CKSource.CKFinder.Connector.Core.Builders;
使用CKSource.CKFinder.Connector.Core.Logs;
使用CKSource.CKFinder.Connector.Host.Owin;
使用CKSource.CKFinder.Connector.Logs.NLog;
使用CKSource.CKFinder.Connector.KeyValue.EntityFramework;
使用CKSource.FileSystem.Dropbox;
使用CKSource.FileSystem.Local;
使用制度;
使用Microsoft.AspNet.Identity;
使用Microsoft.AspNet.Identity.Owin;
使用Microsoft.Owin;
使用Microsoft.Owin.Security.Cookies;
使用Owin;
使用Microsoft.Owin.Security;
使用CKSource.CKFinder.Connector.Core.Acl;
使用System.Collections.Generic;
使用CKSource.CKFinder.Connector.Core.Authentication;
使用System.Threading.Tasks;
使用CKSource.CKFinder.Connector.Core;
使用系统线程;
使用System.Security.Cryptography;
使用系统文本;
公共部分类启动
{
公共无效配置(IAppBuilder)
{
LoggerManager.LoggerAdapterFactory=新的NLogLoggerAdapterFactory();
配置AuthForIdentity(生成器);
RegisterFileSystems();
var connectorBuilder=ConfigureConnector();
var connector=connectorBuilder.Build(新的OwinConnectorFactory());
Map(“/CKFinder/connector”,builder1=>builder1.UseConnector(connector));
}
私有void配置AuthForIdentity(IAppBuilder应用程序)
{
//将数据库上下文、用户管理器和登录管理器配置为每个请求使用一个实例
app.CreatePerOwinContext(ApplicationDbContext.Create);
app.CreatePerOwinContext(ApplicationUserManager.Create);
app.CreatePerOwinContext(ApplicationSignInManager.Create);
//使应用程序能够使用cookie存储登录用户的信息
//以及使用cookie临时存储用户登录第三方登录提供商的信息
//配置登录cookie
app.UseCookieAuthentication(新的CookieAuthenticationOptions
{
AuthenticationType=DefaultAuthenticationTypes.ApplicationOkie,
LoginPath=新路径字符串(“/Account/Login”),
Provider=新CookieAuthenticationProvider
{
//允许应用程序在用户登录时验证安全戳。
//这是一种安全功能,在您更改密码或向帐户添加外部登录时使用。
OnValidateIdentity=SecurityStampValidator.OnValidateIdentity(
validateInterval:TimeSpan.FromMinutes(30),
regenerateIdentity:(管理器,用户)=>user.GenerateUserIdentityAsync(管理器))
}
});
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
//允许应用程序在验证双因素身份验证过程中的第二个因素时临时存储用户信息。
app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie,TimeSpan.FromMinutes(5));
//使应用程序能够记住第二个登录验证因素,如电话或电子邮件。
//选中此选项后,登录过程中的第二步验证将在您登录的设备上被记住。
//这类似于登录时的RememberMe选项。
app.useTowFactoryMemberBrowserCookie(DefaultAuthenticationTypes.TwoFactoryRememberBrowserCookie);
}
公共ConnectorBuilder配置连接器()
{
var connectorBuilder=new connectorBuilder();
连接器生成器
.SetRequestConfiguration(
(请求,配置)=>
{
//config.AddProxyBackend(“本地”,新的本地存储(@“MyFiles”);
var userName=request.Principal?.Identity?.Name;
如果(用户名!=null)
{
var sha=新的SHA1CryptoServiceProvider();
var hash=sha.ComputeHash(Encoding.UTF8.GetBytes(userName));
var folderName=BitConverter.ToString(散列).Replace(“-”,string.Empty);
config.AddProxyBackend(“本地”,新的本地存储(@“c:\files”);
config.AddResourceType(“private”,resourceBuilder=>resourceBuilder.SetBackend(“local”,folderName));
config.SetThumbnailBackend(“本地”、“拇指”);
config.AddAclRule(新AclRule(
新StringMatcher(“*”),新StringMatcher(/”),新StringMatcher(“*”,
新词典
{
{Permission.FolderView,PermissionType.Allow},
{Permission.FolderCreate,PermissionType.Allow},