小编Aru*_*tap的帖子

c#中readonly关键字/表达式成员之间的区别,哪个更好?

在c#中,readonly成员可以简化为只读自动属性/表达式成员,对于不可变成员,表达式成员比使用readonly关键字更好吗?

使用readonly keywork:

public static readonly string  COMPANY_NAME= "XYZ";
Run Code Online (Sandbox Code Playgroud)

使用表达身体的成员:

public  static  string  COMPANY_NAME => "XYZ";
Run Code Online (Sandbox Code Playgroud)

我遇到过各种论坛和解决方案,建议表达身体的成员用于短手使用,我无法找到它在性能上的差异.

c# c#-6.0

17
推荐指数
3
解决办法
1021
查看次数

ASP.NET核心中间件将参数传递给控制器

我正在使用ASP.NET Core Web API,我有多个独立的web api项目.在执行任何控制器的操作之前,我必须检查登录用户是否已经模仿其他用户(我可以从中获取DB)并且可以将模拟用户传递Idactions.

由于这是一段可以重复使用的代码,我想我可以使用中间件:

  • 我可以从请求标头获取初始用户登录
  • 获取被授权的用户ID(如果有)
  • 在请求管道中注入该ID,使其可用于被调用的api
public class GetImpersonatorMiddleware
{
    private readonly RequestDelegate _next;
    private IImpersonatorRepo _repo { get; set; }

    public GetImpersonatorMiddleware(RequestDelegate next, IImpersonatorRepo imperRepo)
    {
        _next = next;
        _repo = imperRepo;
    }
    public async Task Invoke(HttpContext context)
    {
        //get user id from identity Token
        var userId = 1;

        int impersonatedUserID = _repo.GetImpesonator(userId);

        //how to pass the impersonatedUserID so it can be picked up from controllers
        if (impersonatedUserID …
Run Code Online (Sandbox Code Playgroud)

c# middleware asp.net-core-mvc asp.net-core asp.net-core-webapi

15
推荐指数
2
解决办法
5872
查看次数

.net核心在哪里搜索linux平台上的证书

在Windows上,对于.NET Framework类,我们可以指定sslkeyrepository为*SYSTEM/*USER.On 默认情况下linux.NET Core类在哪里搜索,certificates以及可能是什么值sslkeyrepository.

c# ssl .net-core .net-standard .net-standard-2.0

13
推荐指数
3
解决办法
2044
查看次数

路由:如何在url中隐藏动作名称?

在MVC默认路由中

routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );
Run Code Online (Sandbox Code Playgroud)

无论何时访问索引操作,当访问"索引"操作时,URL都不显示操作名称.

我想在不同的控制器上获取该行为,该控制器检索单个项目的数据.我希望将默认操作命名为"get",对于此操作,我希望url不显示操作名称,只显示控制器和项目ID.

我认为与上面的路线类似,如下所示:

routes.MapRoute(
            "item_details",
            "item/{action}/{id}",
            new { controller = "item", action = "Get" }
            );
Run Code Online (Sandbox Code Playgroud)

会做的伎俩,但它给了我一个像localhost的网址:xxxx/item/Get/152 ...我错过了什么?

c# asp.net-mvc

11
推荐指数
1
解决办法
2万
查看次数

Asp.Net MVC4 + Web API控制器删除请求>> 404错误

我有一个VS2012 MVC4解决方案,我测试Web API控制器.

我成功测试了GET,POST,PUT但DELETE仍然给我一个http 404错误.当我在api控制器中的'DeleteMovie'动作中设置断点时,永远不会到达断点.

我读了很多关于这个问题的帖子,但没有人帮助过我.

这是我的DELETE API控制器:

    [HttpDelete]
    public HttpResponseMessage DeleteMovie(int id)
    {    
        // Delete the movie from the database     
        // Return status code    
        return new HttpResponseMessage(HttpStatusCode.NoContent);

    }
Run Code Online (Sandbox Code Playgroud)

这是我的html页面:

<script type="text/javascript">

    deleteMovie(1, function ()
    {
        alert("Movie deleted!");
    });

    function deleteMovie(id, callback) {
        $.ajax({
            url: "/api/Movie",
            data: JSON.stringify({ id: id }),
            type: "DELETE",
            contentType: "application/json;charset=utf-8",
            statusCode: {
                204: function () {
                    callback();
                }
            }
        });
    }

</script>
Run Code Online (Sandbox Code Playgroud)

我的经典路线如下:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}", …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc asp.net-web-api asp.net-web-api-routing

11
推荐指数
2
解决办法
1万
查看次数

没有注册名为“默认”的 IUserTwoFactorTokenProvider。问题是两 (2) 个 ASP.NET Core 身份注册中的 AddDefaultTokenProviders()

我有 (2) Identity systems,每个都有自己的Context

1: CustomerContext : IdentityDbContext<CustomerUser>
2: ApplicationContext : IdentityDbContext<ApplicationUser>
Run Code Online (Sandbox Code Playgroud)

我已经在 ASP.NET Core 3.0 API 启动文件中成功注册了它们。一个使用“AddIdentity”,另一个使用“AddIdentityCore”

我还向它们添加了“AddDefaultTokenProviders”。尽管它构建并运行,但当我尝试使用令牌提供程序时会出现问题,例如GenerateEmailConfirmationTokenAsyncGeneratePasswordResetTokenAsync

如果我从注册中删除“AddDefaultTokenProviders”之一,那么使用令牌适用于带有“AddDefaultTokenProviders”的身份,当两者都包含 AddDefaultTokenProviders 时,两者都不起作用。我得到了这些例外(为简洁起见,我对它们进行了一些修剪):

System.NotSupportedException: No IUserTwoFactorTokenProvider named 'Default' is registered.
- at Microsoft.AspNetCore.Identity.UserManager.GenerateUserTokenAsync(GenerateEmailConfirmationTokenAsync)
OR
- at Microsoft.AspNetCore.Identity.UserManager.GenerateUserTokenAsync(GeneratePasswordResetTokenAsync)
Run Code Online (Sandbox Code Playgroud)

这些是 Startup.cs 中的身份注册:

客户用户

services.AddIdentity<CustomerUser, CustomerRole>(options =>
{
    options.Password.RequiredLength = 6;
})
.AddEntityFrameworkStores<CustomerContext>()
.AddDefaultTokenProviders(); // <-- CANNOT HAVE (2)
Run Code Online (Sandbox Code Playgroud)

应用用户

var builder = services.AddIdentityCore<ApplicationUser>(options =>
{
    options.Password.RequiredLength = 6;
});
builder = …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-web-api asp.net-identity asp.net-core

11
推荐指数
3
解决办法
7783
查看次数

Asp.Net路由:如何忽略多个通配符路由?

我想忽略多个通配符路由.使用asp.net mvc预览版4,它们附带:

RouteTable.Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
Run Code Online (Sandbox Code Playgroud)

我还想添加以下内容:

RouteTable.Routes.IgnoreRoute("Content/{*pathInfo}");
Run Code Online (Sandbox Code Playgroud)

但这似乎打破了我的程序中生成网址的一些助手.思考?

c# asp.net asp.net-mvc routing

10
推荐指数
2
解决办法
9822
查看次数

ASP.NET MVC:构造控制器

所以我正在着手一个ASP.NET MVC项目,虽然整体经验很好,但我对控制器已经变成的意大利面条很不满意.我在网上看了看(CodeCampServer等等),他们似乎都遇到了同样的问题,其中控制器方法非常一致地违反SRP(单一责任原则) - 例如一个控制器方法,如果请求是简单的呈现视图如果是POST,则更新模型.现在我有控制器方法负责整个应用程序中的多个逻辑路由 - 比如它检查在表单上单击了哪个按钮并采取相应的行动.我可以使用JavaScript将每个按钮单击重定向到不同的表单操作,但是有些东西感觉不对...... 另一个大问题是魔术字符串的泛滥--ViewData ["foo"] = blah; 长话短说,你们如何构建控制器逻辑?每个视图一个巨型模型对象?路由器有很多小控制器方法和JavaScript吗?我的目标是可维护的代码 - 随着功能的积累,我开始滑下滑坡......

c# asp.net-mvc

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

为什么 Swashbuckle.aspnet.core.swagger 不被识别

我已经安装nuget package managerSwashbuckle.AspNetCore.Swagger并且已经Swashbuckle.AspNetCore.Swagger在顶部包含了 using ,但是我在Info{ Title}方法上遇到了错误。任何人都可以请建议如何解决这个问题。

 services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info { Title = "My DAB API", Version = "V3.2.2" });
            }); 
Run Code Online (Sandbox Code Playgroud)

c# swagger swashbuckle asp.net-core

10
推荐指数
3
解决办法
9989
查看次数

如何使用Jquery Datatables Ellipsis渲染器进行模板字段链接按钮?

当我使用Asp-bound field它时,它的工作完美

column一个是Ellipsed

在此输入图像描述

但是在使用template field link button它时它会返回空白

看到它是空白我不知道我应该怎么做在链接按钮列字段上应用相同的任何建议?

在此输入图像描述

scriptEclipsed

function pageLoad() {
            var table = $('#gvTest  ').DataTable({
                select: true,
                pageLength: 15,
                lengthChange: false,
                scrollY: "400px",
                scrollX: true,
                scrollCollapse: false,
                order: [15],
                fixedColumns: true,
                columnDefs: [ 
                    { targets: 0, render: $.fn.dataTable.render.ellipsis(7, true) },
                    { targets: 1, render: $.fn.dataTable.render.ellipsis(10, true) },                        
                 ],
                fixedColumns:   {
                    leftColumns: 1,
                }
            });
            $('#BtnReport').click(function () {
           var ids = $.map(table.rows('.selected').data(), function (item) {
               return item[14];
                });
                var …
Run Code Online (Sandbox Code Playgroud)

javascript c# asp.net jquery datatables

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