小编Sor*_*ren的帖子

如何在ASP.NET核心中获取SignalR Hub上下文?

我正在尝试使用以下内容获取集线器的上下文:

var hubContext = GlobalHost.ConnectionManager.GetHubContext<SomeHub>();
Run Code Online (Sandbox Code Playgroud)

问题是没有定义GlobalHost.我看到它是SignalR.Core dll的一部分.目前,我在项目.json文件中,在依赖项下有以下内容:

"Microsoft.AspNet.SignalR.Server": "3.0.0-*"
Run Code Online (Sandbox Code Playgroud)

如果我添加最新的Core版本:

"Microsoft.AspNet.SignalR.Server": "3.0.0-*",
"Microsoft.AspNet.SignalR.Core" :  "2.1.2"
Run Code Online (Sandbox Code Playgroud)

我得到了一大堆错误,因为服务器和核心是冲突的.如果我将它们更改为使用版本"3.0.0-*",则所有冲突都会消失,但无法找到GlobalHost.如果我删除服务器,只删除用户核心版本2.1.2然后GlobalHost工作,但所有其他需要服务器的东西,显然不会.

有任何想法吗?

signalr signalr-hub asp.net-core

34
推荐指数
3
解决办法
2万
查看次数

VSCode在特定端口上托管.NET Core应用程序

从launch.json开始,在特定端口上托管.NET Core的正确方法是什么?例如,当我运行我的.NET Core应用程序VS Code时,将它托管在localhost:5000上,但我想在localhost:5050上托管它.

提前致谢.

visual-studio-code asp.net-core

17
推荐指数
1
解决办法
4662
查看次数

获取.NET核心中的类的公共属性

我注意到.NET核心不允许,myObj.GetType().GetProperties()因为没有GetProperties方法存在.有没有其他方法通过反射获得类的属性?

c# .net-core

9
推荐指数
2
解决办法
9933
查看次数

在Entity Framework Core中创建迁移时如何配置DbContext?

在使用Entity Framework的迁移命令时,是否可以配置/引导依赖注入?

Entity Framework Core支持DbContext子类的依赖注入.该机制包括允许在数据访问之外配置数据访问DbContext.

例如,以下内容将使用从中检索的连接字符串将EF配置为持久保存到SQL Server config.json

ServiceCollection services = ...

var configuration = new Configuration().AddJsonFile( "config.json" );
services.AddEntityFramework( configuration )
    .AddSqlServer()
    .AddDbContext<BillingDbContext>( config => config.UseSqlServer() );
Run Code Online (Sandbox Code Playgroud)

但是,迁移命令不知道执行此代码,因此Add-Migration缺少提供程序或缺少连接字符串会失败.

迁移可制成通过覆盖工作OnConfiguring的内DbContext子类来指定供应商和配置字符串,但在不同的配置是其他地方所期望的方式获得.最终保持我的迁移命令和我的代码都工作变得非常复杂.

注意:我的DbContext生活在与使用它的入口点不同的程序集中,我的解决方案有多个启动项目.

c# dependency-injection dbcontext entity-framework-core .net-core

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

如何在vNext下的MVC 6中上传文件?

在MVC 5中我曾经这样做过:

var context = (HttpContextBase)Request.Properties["MS_HttpContext"];
var file = (HttpPostedFileBase)context.Request.Files[0];
Run Code Online (Sandbox Code Playgroud)

现在这些在vCxt下的MVC 6中不可用.如何从请求中获取文件?

asp.net-core-mvc asp.net-core

6
推荐指数
3
解决办法
2万
查看次数

添加角色声明-我应该使用IClaimsTransformer吗

我们想在当前主体中添加很多角色声明(我们使用Authorize(Roles)属性),并发现IClaimsTransformer这看起来很合适。

我们已经registerd像这样

 app.UseClaimsTransformation(new ClaimsTransformationOptions
        {
            Transformer = new GetRolesFromDatabaseClaimsTransformer(new RoleManager2(Configuration.GetConnectionString("ourcoolapp")))
        });
Run Code Online (Sandbox Code Playgroud)

而变换是这样的:

public Task<ClaimsPrincipal> TransformAsync(ClaimsTransformationContext context)
{
        // A hacky way to not load on all requests. Better ideas?
        if (!context.Context.Request.Path.Value.Contains("api/"))
        {
            return Task.FromResult(context.Principal);
        }

        var roleClaims = RoleManager.GetRolesForUser(context.Principal.Identity.Name).Select(roleName => new Claim("role", roleName));

        var claims = new List<Claim> { };
        var identity = context.Principal.Identity as ClaimsIdentity;
        claims.AddRange(identity.Claims);
        claims.AddRange(roleClaims);

        var userIdentity = new ClaimsIdentity(claims, "local");
        var userPrinicpal = new ClaimsPrincipal(userIdentity);

        return Task.FromResult(userPrinicpal);
}
Run Code Online (Sandbox Code Playgroud)

问题:是否有其他或更聪明的方法来添加角色声明?

谢谢

Larsi

claims-based-identity authorize-attribute asp.net-web-api asp.net-identity .net-core

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

让所有用户获得某项索赔?

对于ASP.NET Identity 2.0:

有人知道如何"分配给定索赔的所有用户"吗?

假设我有一个type ="ArticleId"和value ="1"的声明.

如何让所有拥有此声明的用户获得此声明?我真的想不出来..所以,谢谢你的帮助!!

c# asp.net-identity

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

如何在startup.cs的ConfigureServices方法中正确注入DbContext实例(ASP.net Core 1.1)?

我已经EntityFrameworkFileProvider为我的ASP.NET核心Web应用程序实现了,我希望ViewDbContext实例由ASP.NET核心DI框架在构造函数中注入:

ViewDbContextdbContext

public class EntityFrameworkFileProvider : IFileProvider
{
    private ViewDbContext _context;

    public EntityFrameworkFileProvider(ViewDbContext context)
    { 
       /* should be injected by asp.net core DI */
        _context = context;
    }
    public IDirectoryContents GetDirectoryContents(string subpath)
    {
        .....
    }

    public IFileInfo GetFileInfo(string subpath)
    {
        var result = new DatabaseFileInfo(_context, subpath);
        return result.Exists ? result as IFileInfo : new NotFoundFileInfo(subpath);
    }

    public IChangeToken Watch(string filter)
    {
        return new DatabaseChangeToken(_context, filter);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我将它们添加EntityFrameworkFileProviderRazorViewEngineOptionstartup.cs中。如何使用startup.cs方法使 …

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

4
推荐指数
2
解决办法
5091
查看次数

为什么在视图中ASP.NET Core会将波斯(或阿拉伯)文本转换为字符引用(&#xhhhh;)

源代码:

@{ ViewBag.Title = "???? ????"; }

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>@ViewBag.Title</title>
</head>
<body>

    <div class="container" dir="rtl">
        @RenderBody()
    </div>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

它在浏览器中很好地呈现,但是我想要html源中的相同文本(对于某些搜索引擎优化器软件)

阿拉伯文字中的ViewBag问题

并输出:

<!DOCTYPE html>
<html>
<head>
    <title>&#x633;&#x644;&#x627;&#x645; &#x639;&#x644;&#x6CC;&#x6A9;</title>
</head>
<body>
...
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-core-mvc asp.net-core asp.net-core-1.0

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

AspNet Core 中 UTC 中的 Http 查询参数

我遇到了一个我无法弄清楚的问题。

我尝试在服务器端始终处理 UTC DateTime。

我有一个 AspNetCore Mvc 应用程序,其端点接受可能包括 DateTimes 的查询。我希望 Mvc 了解这些日期已经在 UTC 中,而不是“再次”转换它们。

我的系统在西班牙,(UTC +2)

如果我像这样向我的本地主机服务器发送一个 http 请求:

http://localhost:50004/api/Resources?appliesOn=2018-06-30T18:00:00.000Z
Run Code Online (Sandbox Code Playgroud)

我想让反序列化的日期时间作为 UTC 表示与以下相同的日期:

DateTime.SpecifyKind(new DateTime(2018, 6, 30, 18, 0, 0), DateTimeKind.Utc)
Run Code Online (Sandbox Code Playgroud)

但是我可以看到 Mvc 总是将日期 2018-06-30T18:00:00.000Z 转换为两个小时后: 2018-06-30 20:00:00

我试图告诉 Mvc 使用 UTC json 序列化器/反序列化器,但没有任何变化:

services
  .AddMvc()
  .AddJsonOptions(options =>
  {
      options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Utc;
  });
Run Code Online (Sandbox Code Playgroud)

有没有办法在 http GET 请求中发送查询参数已经作为 UTC 日期时间的表示?我理解 ISO 8601 中的日期,如果它有后缀 Z 表示“零偏移”,应该已经解释为 UTC 日期时间。为什么 Mvc 会对此进行转换并添加 2 小时的偏移量?

任何澄清将不胜感激!

PS:这是我的端点,你可以看到没有什么特别的:

[HttpGet("")]
public IActionResult GetResources()
{
    var displayUri = …
Run Code Online (Sandbox Code Playgroud)

c# datetime utc iso8601 asp.net-core-mvc

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

如何使用LUIS无意图在c#中没有列车话语在LUIS

我已经实现了如下的无意图.

[LuisIntent("None")]
public async Task None(IDialogContext context, LuisResult result)
{
      await context.PostAsync("I'm sorry. I didn't understand you.");
      context.Wait(MessageReceived);            
}
Run Code Online (Sandbox Code Playgroud)

但看起来我需要在路易斯那边训练一些话语,这是我不想要的.我正在寻找在路易斯找不到或识别的东西,应该解雇无意图处理程序.我该如何实现这一目标?

c# botframework azure-language-understanding

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