使用MVC 4,我能够将视图的编辑器模板放入视图的文件夹中:AwesomeApp/Views/UserMgmt/EditorTemplates/UserSettings.cshtml.
现在我使用的是ASP.NET Core MVC 6,它找不到编辑器模板.我必须把它们放进去AwesomeApp/Views/Shared/EditorTemplates/UserSettings.cshtml.需要配置什么,所以我不必将所有编辑器模板都放在这个文件夹中?
我正在使用最新版本的Telerik用于ASP.NET MVC的Kendo UI.但我想这是应用程序本身的一部分.
最好的问候,Carsten
我正在尝试使用我的ASP.NET Core应用程序设置Serilog.我想为所有控制器提供一个日志文件,一个用于所有服务,一个用于其余服务,理想情况下包含一切.每个控制器都是继承BaseController和每个服务BaseService.我正在调用的控制器和服务正在编写跟踪日志事件.
通过依赖注入检索记录器和服务.该服务看起来像控制器(关于记录器).
public class UsersController: BaseController
{
private UserService service { get; }
public UsersController(ILogger<UsersController> logger, UserService userService) : base(logger)
{
service = userService;
}
}
public abstract class BaseController: Controller
{
protected readonly ILogger<BaseController> Logger;
public BaseController(ILogger<BaseController> logger)
{
Logger = logger;
}
}
Run Code Online (Sandbox Code Playgroud)
方法1(仅与基础部门合作)
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.WriteTo.Logger(l => l
.MinimumLevel.Verbose()
.WriteTo.Logger(l2 => l2
.WriteTo.Logger(l3 => l3
.Filter.ByIncludingOnly(Matching.FromSource<BaseController>())
.MinimumLevel.Verbose()
.WriteTo.RollingFile("d:/logs/recon-api-controller-{Date}.log"))
.WriteTo.Logger(l3 => l3
.Filter.ByIncludingOnly(Matching.FromSource<BaseService>())
.MinimumLevel.Verbose()
.WriteTo.RollingFile("d:/logs/recon-api-service-{Date}.log"))
.WriteTo.Logger(l3 => l3
.Filter.ByExcluding(Matching.FromSource<BaseController>()) …Run Code Online (Sandbox Code Playgroud) 为了初步了解,我创建了一个非常简单的项目,它试图计算两个目录中的文件数.User1不允许访问Directory2,User2也不允许访问Directory1.由于模仿,我应该只获得一个号码,具体取决于调用我的应用程序的用户.两个用户都设置为管理员.
所以我在Visual Studio 2015中创建了一个新的MVC项目(在Windows 8.1上运行)并选择使用Windows身份验证.一旦应用程序启动并运行(在ISS Express中),我就切换到User1我的机器上(没有Active Directory)并在Internet Explorer中调用该网站(是的,在设置中启用了"集成Windows身份验证").有了这个设置,在用户HttpContext.User.Identity是User1和WindowsIdentity.GetCurrent()我发展用户,一个我在Visual Studio中工作.
我还试图手动模仿:
WindowsIdentity winId = (WindowsIdentity)User.Identity;
WindowsImpersonationContext ctx = null;
try
{
ctx = winId.Impersonate();
// GetNumbers() tries to get the number of files for both directories
numbers = GetNumbers();
}
catch (Exception e)
{
}
finally
{
if (ctx != null)
{
ctx.Undo();
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我得到了例外情况"未提供所需的模拟级别,或者提供的模拟级别无效." 有些人声称这个解决了他们的问题:https://kc.mcafee.com/corporate/index?page = content&id = KB56194不适合我.我已将 …