在使用MVC5之前我已经完成了这个,User.Identity.GetUserId()但这似乎不适用于此.本User.Identity可是没有的GetUserId()方法
我在用 Microsoft.AspNet.Identity
我刚开始在名为visual studio 2017 RC的新版Visual Studio中编写报告软件,但只是注意到Windows窗体和WPF应用程序模板都缺少核心报告查看工具.任何人都可以告诉我为什么reportviewer工具从视觉工作室2017消失了?没有它真的遇到麻烦.在新的Visual Studio中有没有可以使用此工具的替代方案?
我在一个方法中设置一个会话变量,并尝试从控制器中的另一个方法获取会话变量值,但它始终为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) 我正在开发一个ASP.Net vNext/MVC6项目.我正在掌握ASP.Net Identity.
本ApplicationUser类显然是在那里我应该添加任何额外的用户属性,这可与实体框架和我的附加属性获取存储在数据库中的预期.
但是,当我想从我的视图中访问当前登录用户的详细信息时,问题就出现了.具体来说,我有一个_loginPartial.cshtml我想要检索并显示用户的Gravatar图标,我需要该电子邮件地址.
Razor View基类有一个User属性,它是一个ClaimsPrincipal.如何从此User属性返回到我的ApplicationUser,以检索我的自定义属性?
请注意,我不是在询问如何查找信息; 我知道如何ApplicationUser从User.GetUserId()值中查找.这是一个关于如何合理地解决这个问题的问题.具体来说,我不想:
这似乎是一个"横切关注点",应该有一个集中的标准解决方案,但我觉得我错过了一块拼图游戏.从视图中获取这些自定义用户属性的最佳方法是什么?
注意:似乎MVC团队通过确保UserName属性始终设置为用户的电子邮件地址,在项目模板中侧面解决了这个问题,巧妙地避免了他们执行此查找以获取用户的电子邮件地址!这对我来说似乎有点欺骗,在我的解决方案中,用户的登录名可能是也可能不是他们的电子邮件地址,所以我不能依赖这个技巧(我怀疑还有其他属性我需要稍后访问).
我有一个类如下:
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)
我想通过IssuerName和DateOfIssue将它们分组为以下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) 虽然我正在使用AngularJS中的HTTP promise对象,但我没有一个明确的概念,即HTTP承诺对象实际上是什么,以及AngularJS中HTTP promise对象和传统对象之间的区别是什么!
请问有人解释一下吗?
如果我的模型具有类型的键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支持,如果我明确设置了一个值,我想我会降低索引性能,因为它不再是顺序的?
我一直无法找到答案,我对此非常好奇.
我正在尝试将 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?
我正在配置此应用程序, 确认帐户并在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)
知道是什么问题吗?
我正在尝试从类库中的 .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
c# ×6
asp.net-core ×4
.net-core ×1
angular-http ×1
angularjs ×1
asp.net ×1
asp.net-mvc ×1
guid ×1
httpcontext ×1
javascript ×1
linq ×1
session ×1
wpf ×1