小编Tan*_*jel的帖子

如何在ASP.NET Core中获取当前登录的用户标识

在使用MVC5之前我已经完成了这个,User.Identity.GetUserId()但这似乎不适用于此.本User.Identity可是没有的GetUserId()方法

我在用 Microsoft.AspNet.Identity

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

139
推荐指数
12
解决办法
15万
查看次数

在Visual Studio 2017 RC中缺少Reportviewer工具

我刚开始在名为visual studio 2017 RC的新版Visual Studio中编写报告软件,但只是注意到Windows窗体和WPF应用程序模板都缺少核心报告查看工具.任何人都可以告诉我为什么reportviewer工具从视觉工作室2017消失了?没有它真的遇到麻烦.在新的Visual Studio中有没有可以使用此工具的替代方案?

c# wpf windows-forms-designer visual-studio-2017

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

会话变量值在ASP.NET Core中变为null

我在一个方法中设置一个会话变量,并尝试从控制器中的另一个方法获取会话变量值,但它始终为null:

这是我的代码:

public class HomeController : Controller
{
    public IActionResult Index()
    { 
        HttpContext.Session.SetString("Test", "Hello!");
        var message = HttpContext.Session.GetString("Test");// Here value is getting correctly
        return View();
    }

    public IActionResult About()
    {
        var message = HttpContext.Session.GetString("Test"); // This value is always getting null here

        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我在Startup课堂上的会话配置:

ConfigureServices()方法中:

services.Configure<CookiePolicyOptions>(options =>
{
    // This lambda determines whether user consent for non-essential cookies is needed for a given request.
    options.CheckConsentNeeded = context => true;
    options.MinimumSameSitePolicy = SameSiteMode.None;
}); …
Run Code Online (Sandbox Code Playgroud)

session session-variables asp.net-core-mvc asp.net-core

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

我应该如何从MVC 6视图中访问我的ApplicationUser属性?

我正在开发一个ASP.Net vNext/MVC6项目.我正在掌握ASP.Net Identity.

ApplicationUser类显然是在那里我应该添加任何额外的用户属性,这可与实体框架和我的附加属性获取存储在数据库中的预期.

但是,当我想从我的视图中访问当前登录用户的详细信息时,问题就出现了.具体来说,我有一个_loginPartial.cshtml我想要检索并显示用户的Gravatar图标,我需要该电子邮件地址.

Razor View基类有一个User属性,它是一个ClaimsPrincipal.如何从此User属性返回到我的ApplicationUser,以检索我的自定义属性?

请注意,我不是在询问如何查找信息; 我知道如何ApplicationUserUser.GetUserId()值中查找.这是一个关于如何合理地解决这个问题的问题.具体来说,我不想:

  • 从我的视图中执行任何类型的数据库查找(关注点分离)
  • 必须为每个控制器添加逻辑以检索当前用户的详细信息(DRY原则)
  • 必须为每个ViewModel添加User属性.

这似乎是一个"横切关注点",应该有一个集中的标准解决方案,但我觉得我错过了一块拼图游戏.从视图中获取这些自定义用户属性的最佳方法是什么?

注意:似乎MVC团队通过确保UserName属性始终设置为用户的电子邮件地址,在项目模板中侧面解决了这个问题,巧妙地避免了他们执行此查找以获取用户的电子邮件地址!这对我来说似乎有点欺骗,在我的解决方案中,用户的登录名可能是也可能不是他们的电子邮件地址,所以我不能依赖这个技巧(我怀疑还有其他属性我需要稍后访问).

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

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

在C#LINQ中按多列分组

我有一个类如下:

public class ActualClass
{
    public string BookName { get; set; }
    public string IssuerName { get; set; }
    public DateTime DateOfIssue { get; set; }
    public bool Status { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

它在表中有以下数据: 在此输入图像描述

我想通过IssuerNameDateOfIssue将它们分组为以下viewModel类:

public class ViewModel
{
   public string IssuerName { get; set; }
   public DateTime DateOfIssue { get; set; }
   public List<string> Books { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

数据将显示如下:( 成功分组后,屏幕截图数据将被前一个表数据替换) 在此输入图像描述

特别注意: 根据我的期望,我的ViewModel有什么问题吗?

在完成了一些stackoverflow的答案后,我尝试了很多,但没有一个对我有用.任何帮助将受到高度赞赏.

我试过的代码:

var viewmodel = from b …
Run Code Online (Sandbox Code Playgroud)

c# linq asp.net-mvc entity-framework

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

AngularJS中的HTTP承诺对象是什么?

虽然我正在使用AngularJS中的HTTP promise对象,但我没有一个明确的概念,即HTTP承诺对象实际上是什么,以及AngularJS中HTTP promise对象和传统对象之间的区别是什么!

请问有人解释一下吗?

javascript angularjs angular-http angular-promise

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

是否在实体框架核心实践中实例化GUID?

如果我的模型具有类型的键Guid,那么在构造函数中显式设置ID是不好的做法吗?

我知道它将由Entity Framework隐式设置,但是通过明确设置它会发生什么不好的事情(可能是性能明智的)?

例:

class MyModel
{
    public MyModel()
    {
        Id = Guid.NewGuid();
    }

    [Key]
    public Guid Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我认为GuidSQL服务器中的顺序ID支持,如果我明确设置了一个值,我想我会降低索引性能,因为它不再是顺序的?

我一直无法找到答案,我对此非常好奇.

c# guid entity-framework-core

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

在 ASP.NET Core 2.x 中手动创建 HttpContext

我正在尝试将 Razor 视图呈现为来自托管服务的字符串。通过使用,IRazorViewEngine我可以使用如下所示的方式将视图呈现为字符串:

 _viewEngine.FindView(actionContext, viewName, false);
var viewDictionary = new ViewDataDictionary(new EmptyModelMetadataProvider(), new ModelStateDictionary())
                {
                    Model = model
                };

                var viewContext = new ViewContext(
                    actionContext,
                    viewResult.View,
                    viewDictionary,
                    new TempDataDictionary(actionContext.HttpContext, _tempDataProvider),
                    sw,
                    new HtmlHelperOptions()
                );
                viewContext.RouteData = httpContext.GetRouteData();   //set route data here

                await viewResult.View.RenderAsync(viewContext);
Run Code Online (Sandbox Code Playgroud)

但是,当Controller由于缺少而没有从 a 调用时,这会崩溃HttpContext。我尝试手动构建 HttpContext,但在 Microsoft Mvc 代码深处遇到许多错误和空异常,这极难调试。我尝试过像RazorLight这样的库,它不适合我的需求,因为它不能正确支持@inject指令。我认为我最好的解决方案是尝试模拟一个假的 HttpContext/ControllerContext 以传递给本机 ViewEngine。但是,当我创建一个 new 时DefaultHttpContext,我在此处得到一个 NullReferenceException ,但是很难跟踪代码并找到它的来源。

有没有办法创建一个新的 HttpContext?

c# httpcontext asp.net-core-mvc asp.net-core

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

HTTP错误500.30-ASP.NET Core 2.2中的ANCM进程内启动失败错误

我正在配置此应用程序, 确认帐户并在ASP.NET Core中恢复密码, 但出现错误:

HTTP错误500.30-ANCM进程内启动失败导致此问题的常见原因:应用程序无法启动应用程序已启动但随后停止应用程序已启动但在启动过程中引发了异常故障排除步骤:检查系统事件日志中是否有错误消息启用日志记录功能应用程序进程的stdout消息将调试器附加到应用程序进程,并在IdentityHostingStartup中替换此代码时检查http 500

下面是我的配置:

[assembly: HostingStartup(typeof(Misioneros.Stella.Maris.Web.Areas.Identity.IdentityHostingStartup))]
namespace Misioneros.Stella.Maris.Web.Areas.Identity
{
    public class IdentityHostingStartup : IHostingStartup
    {
        public void Configure(IWebHostBuilder builder)
        {
            builder.ConfigureServices((context, services) => {
                services.AddDbContext<ApplicationDbContext>(options =>
                    options.UseSqlServer(
                        context.Configuration.GetConnectionString("DefaultConnection")));

                services.AddDefaultIdentity<IdentityUser>(config =>
                {
                    config.SignIn.RequireConfirmedEmail = true;
                })
                    .AddEntityFrameworkStores<ApplicationDbContext>();
            });
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

知道是什么问题吗?

asp.net-core asp.net-core-identity asp.net-core-2.2

9
推荐指数
3
解决办法
9147
查看次数

如何在单独的类库 .net core 中使用 DbContext?

我正在尝试从类库中的 .net core 3.1 MVC 项目访问我的 dbcontext。目前我将我的数据库注入到服务集合中startup.cs

public class AppDbContext : DbContext
{
    public DbSet<User> Users {get; set;}
    public AppDbContext(DbContextOptions<AppDbContext> options)
        : base(options)
    { }

    protected override void OnModelCreating(ModelBuilder builder)
    {
        // Handles duplicate entry for email in user table
        builder.Entity<User>()
            .HasIndex(u => u.Email)
            .IsUnique();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我不确定如何在我的类库中访问这个 AppDbContext。我尝试像访问控制器一样访问它,但显然它不知道 DI 容器。

更多信息: 此库用于发出的常见请求。它必须始终与主 Web 应用程序分开,并且用户永远不必在此类库中编写代码。因此,我需要能够从类库访问主 Web 项目中的 dbcontext。

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

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