小编big*_*ter的帖子

Asp.net Core按用户ID获取用户

使用Asp.net核心身份和实体框架核心,如何通过它的UserId属性获取asp.net用户对象?我知道可以使用以下方法从HttpContext.User对象获取当前登录用户:

UserManager.GetUserAsync(HttpContext.User)
Run Code Online (Sandbox Code Playgroud)

但是,当管理员登录时,我希望他们能够访问/修改任何用户的数据,以便更新用户电子邮件和PhoneNumbers,默认情况下,这些用户电子邮件和电话号码是asp.net用户对象的一部分.

理想情况下,我希望能够做到这样的事情:

var userRecord = _userManager.GetUserById(model.userId);
//update user record
userRecord.Email = model.Email;
userRecord.PhoneNumber = model.PhoneNumber;

var newRecord = await _userManager.UpdateAsync(userRecord);
Run Code Online (Sandbox Code Playgroud)

但很明显,UserManager.GetUserById()方法目前不存在.

entity-framework-core asp.net-core asp.net-core-identity

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

发布不从appsettings.production.json获取连接字符串

我无法让我发布的ASP.net核心应用程序切换到我的appsettings.production.json文件中使用连接字符串.

我已经设置了launchSettings来为我的开发和生产配置文件使用ASPNETCORE_ENVIRONMENT环境变量.当我切换配置文件并在visual studio中运行它时,我的连接字符串会正确更改.

当我在我的Ubuntu服务器上运行已发布的应用程序时,它不会切换.我在我的服务器上将ASPNETCORE_ENVIRONMENT变量设置为"Production".我还验证了appSettings.json和appSettings.production.json都存在于应用程序的根目录中.

我的appsettings.json文件:

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Debug",
      "System": "Information",
      "Microsoft": "Information"
    }
  },
  "ConnectionStrings": {
    "DefaultConnection": "server=localhost;user id=root;password=dev;database=testdb;sslmode=none",
  }
}
Run Code Online (Sandbox Code Playgroud)

我的appsettings.production.json文件:

{
  "ConnectionStrings": {
    "DefaultConnection": "server=localhost;user id=root;password=prod;database=testdb;sslmode=none"
  }
}
Run Code Online (Sandbox Code Playgroud)

我的launchSettings.json文件:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:50824/",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "home/index",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "IIS Express (Production)": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "home/index",
      "environmentVariables": …
Run Code Online (Sandbox Code Playgroud)

asp.net-core

8
推荐指数
1
解决办法
3487
查看次数

为什么Entity Framework(Core)在Add()操作中删除旧记录?

我有一个实体,需要在其上跟踪员工工资率的历史记录.employeeRate对象是:

public class EmployeeRate : BaseEntity
{
    [Key]
    public int EmployeeRateId { get; set; }

    public int EmployeeId { get; set; }

    public double Rate { get; set; }
}

public class BaseEntity
{
    public bool ActiveFlag { get; set; }

    public DateTime CreateStamp { get; set; }

    public DateTime UpdateStamp { get; set; }

    public string LastModifiedBy { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

因此,为了跟踪历史记录,当我"更新"员工费率时,我使用其ID检索所有旧记录并将ActiveFlag设置为false,然后添加具有新工资率且ActiveFlag设置为true的新实体.这是我的这个操作的功能:

private EmployeeRate UpdateRate(EmployeeRate model, string currentUser)
{
    var existingRates = _context.EmployeeRates.Where(r => r.EmployeeId == model.EmployeeId).ToList();
    foreach(var …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework entity-framework-core asp.net-core

6
推荐指数
1
解决办法
1241
查看次数

升级到v1.1后,ASP.NET Core将无法在IIS中运行

我已经升级了我的project.json以使用asp.net核心的新v1.1,现在当我尝试启动IIS Express进行调试时,我收到以下错误:

程序'[8784] dotnet.exe'已退出,代码为-2147450749(0x80008083).

程序'[7352] iisexpress.exe'已退出,代码为0(0x0).

我升级的project.json:

"dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.1.0",
      "type": "platform"
    },
    "Microsoft.ApplicationInsights.AspNetCore": "1.0.0",
    "Microsoft.AspNetCore.Mvc": "1.1.0",
    "Microsoft.AspNetCore.Routing": "1.1.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0",
    "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0",
    "Microsoft.Extensions.Configuration.Json": "1.1.0",
    "Microsoft.Extensions.Logging": "1.1.0",
    "Microsoft.Extensions.Logging.Console": "1.1.0",
    "Microsoft.Extensions.Logging.Debug": "1.1.0",
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0",
    "Microsoft.IdentityModel.Tokens": "5.1.0",
    "Microsoft.AspNetCore.Authentication": "1.1.0",
    "Microsoft.AspNetCore.Authentication.JwtBearer": "1.1.0",
    "Microsoft.AspNetCore.Authentication.Cookies": "1.1.0",
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.1.0",
    "Microsoft.EntityFrameworkCore": "1.1.0",
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "SapientGuardian.EntityFrameworkCore.MySql": "7.1.10",
    "AutoMapper": "5.1.1"
  },

  "tools": {
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview4-final"
  },

  "frameworks": {
    "netcoreapp1.1": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
  },
Run Code Online (Sandbox Code Playgroud)

也许我错过了我的project.json升级所需的东西?或者其中一个包没有与v1.1合作?任何帮助表示赞赏.

注意:当我改回1.0时,一切运行正常.

c# asp.net iis entity-framework-core asp.net-core

5
推荐指数
1
解决办法
3525
查看次数

Angularjs 观察数组并获取更改的对象

在以角度插入或删除数组的情况下,是否可以观察数组,然后获取从数组中添加或删除的对象?我不关心数组中的对象属性,只关心添加或删除的对象本身。所以我相信 $watchCollection 很适合这里,所以它不是一个深度手表。

例如,我将此数组作为双列表框的模型:

$scope.employees = [
    {
      name: "Bob",
      id: "0"
    },
    {
      name: "Carl",
      id: "1"
    },
    {
      name: "Bill",
      id: "2"
    }
  ];
Run Code Online (Sandbox Code Playgroud)

当我将其中一个移出或移到列表框上(插入/删除)时,列表框将自动更新 $scope.employees。如果我做:

$scope.$watchCollection('employees', function(){
    //somehow get changed object
    var changedObject = ...;
    $scope.changedItems.push(changedObject);
  });
Run Code Online (Sandbox Code Playgroud)

我希望能够获取添加/删除的项目,以便我可以使用它或将其保存在某个地方。

angularjs

5
推荐指数
1
解决办法
1643
查看次数

moment.js 浏览器是否独立?

javascript 时间库moment.js 的功能是否与您使用的浏览器无关?我已经遇到过 Javascript 原生 Date 对象在不同浏览器(特别是 Chrome 和 IE)之间表现不同(主要是关于时区)的问题。我还阅读了与浏览器无关的 javascript Date 对象的其他问题:

-不同浏览器的 JavaScript 日期格式问题

- javascript date.parse 在 Chrome 和其他浏览器中的差异

-等等...

由于 momentjs 是一个 javascript 库,我认为它的功能与正在执行它的浏览器无关。

javascript momentjs

4
推荐指数
1
解决办法
3132
查看次数

如何选择每两个元素交替?

我想选择每两行并以该模式交替和重复。我怎样才能使用 CSS 做到这一点?

例如....

蓝色行:1、2、5、6、9、10

红行:3,4,7,8

ul{
  list-style-type: none;
  color: white;
}
li:nth-of-type(odd){
  background-color:blue;
}
li:nth-of-type(even){
  background-color:red;
}
Run Code Online (Sandbox Code Playgroud)
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
  <li>6</li>
  <li>7</li>
  <li>8</li>
  <li>9</li>
  <li>10</li>
</ul
Run Code Online (Sandbox Code Playgroud)

编辑:我忘了添加一个关键点,对不起!这种重复将用于未知长度的 ng-repeat,因此它可以永远持续下去。所以我将无法在 css 中每 2 个显式输入。

css css-selectors

4
推荐指数
1
解决办法
1835
查看次数

如何在ASP.net Core中基于环境添加DbContext

这就是我目前在Startup.cs中的ConfigureServices方法中添加DbContext的方法:

public void ConfigureServices(IServiceCollection services)
{
    .....

    services.AddDbContext<MyDbContext>(options =>
        options.UseMySQL(Configuration.GetConnectionString("DefaultConnection")));

    .....

}
Run Code Online (Sandbox Code Playgroud)

我的连接字符串存储在我的appsettings.json文件中,例如:

{
    ....
  "ConnectionStrings": {
    "DefaultConnection": "server=localhost;user id=root;password=root;database=mydb;sslmode=none"
  }

  ....

}
Run Code Online (Sandbox Code Playgroud)

如果我想切换正在连接的数据库,如果它是"开发"与"生产"环境,如何使"services.AddDbContext()"切换数据库?

c# entity-framework-core asp.net-core

3
推荐指数
1
解决办法
1626
查看次数

.Net Core将表单数据发送到uri

您如何将表单数据发布到.Net Core中的外部URL?例如,如果我想重新创建此示例请求:

POST 
Url: www.googleapis.com/oauth2/v4/token
Content-Type: application/x-www-form-urlencoded

code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp7&
client_id=ABCD1234&
client_secret=XYZ1234&
redirect_uri=https://test.example.com/code&
grant_type=authorization_code
Run Code Online (Sandbox Code Playgroud)

我在这里找到了一个示例,该示例显示了发布JSON的示例,但没有表单数据的示例。

asp.net-core

3
推荐指数
1
解决办法
2507
查看次数