小编Car*_*nke的帖子

使用ASP.NET Core MVC 6将编辑器模板放在view的文件夹中

使用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

mvc-editor-templates kendo-asp.net-mvc asp.net-core-mvc

10
推荐指数
1
解决办法
1746
查看次数

使用Serilog的一个记录器的多个过滤器

我正在尝试使用我的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)

c# logging serilog

9
推荐指数
1
解决办法
7125
查看次数

使用ASP.NET设置模拟

为了初步了解,我创建了一个非常简单的项目,它试图计算两个目录中的文件数.User1不允许访问Directory2,User2也不允许访问Directory1.由于模仿,我应该只获得一个号码,具体取决于调用我的应用程序的用户.两个用户都设置为管理员.

所以我在Visual Studio 2015中创建了一个新的MVC项目(在Windows 8.1上运行)并选择使用Windows身份验证.一旦应用程序启动并运行(在ISS Express中),我就切换到User1我的机器上(没有Active Directory)并在Internet Explorer中调用该网站(是的,在设置中启用了"集成Windows身份验证").有了这个设置,在用户HttpContext.User.IdentityUser1WindowsIdentity.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不适合我.我已将 …

c# asp.net impersonation

7
推荐指数
1
解决办法
1058
查看次数