相关疑难解决方法(0)

获取ASP.NET Identity 2.0中的当前用户标识

我刚刚切换到使用Identity 2.0的新2.0版本.在1.0中我可以使用获取用户对象manager.FindByIdAsync(User.Identity.GetUserId()).该GetUserId()方法似乎不存在于2.0中.

现在我可以弄清楚的是使用manager.FindByEmailAsync(User.Identity.Name)哪些引用users表中的用户名字段.在我的应用程序中,它设置为与电子邮件字段相同.

当有人需要更新他们的电子邮件时,我可以看到这会导致问题.有没有办法根据Identity 2.0 Framework中不变的值(例如id字段)获取当前登录的用户对象?

c# asp.net asp.net-identity

73
推荐指数
5
解决办法
10万
查看次数

'System.Web.HttpContext'不包含'GetOwinContext'Mystery的定义

我意识到这个问题对某些人来说可能看起来微不足道,但是这些类型的东西让我发现自己很多时候都在战斗,我只是想弄清楚这一切尽管在.net中看起来像是一场失败的战斗(无论如何对我来说) ).

所以,如果我做以下事情:

    using System.Web;
...
ApplicationUser user = System.Web.HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(System.Web.HttpContext.User.Identity.GetUserId());
Run Code Online (Sandbox Code Playgroud)

这会产生标题中的错误和红色GetOwinContext()和错误无法解析符号'GetOwinContext()'

但是,如果我执行以下操作(System.Web从前面删除HttpContext),它按预期工作(或至少没有错误):

using System.Web;
    ...
    ApplicationUser user = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(System.Web.HttpContext.User.Identity.GetUserId());
Run Code Online (Sandbox Code Playgroud)

但是,如果我这样做(使用using System.Web注释掉的同一行):

    //using System.Web;
            ...
ApplicationUser user = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(System.Web.HttpContext.User.Identity.GetUserId());
Run Code Online (Sandbox Code Playgroud)

它产生相同的红色GetOwinContext()和错误无法解析符号'GetOwinContext()'

如果我谷歌HttpContext我只能发现它源于System.Web.

所以,问题是为什么我不能像上面第一个例子那样使用完整的语法?(在答案中也提到了最高票数:ASP.NET MVC 5 - Identity.如何获取当前的ApplicationUser)

更新(以解决重复的问题回复):虽然对该问题的答案可能得出相同的结论,但我真的不明白这是一个重复的问题.试着从新手的角度来思考它并解析所有的烟雾和镜子.Net.我从来没有尝试过像生活中那样令人费解的东西.有时你必须从许多不同的角度看问题.

我实际上看到了这个问题以及另一个关于使用的问题Current,但是没有让我感到震惊1)作为我正在寻找的答案(当时)2)更重要的是,为什么它表现得那样.Sam的答案很完美,虽然有点过头了.但是,至少现在,我可以去研究这一切意味着什么......

asp.net asp.net-mvc visual-studio

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

将刻度转换为时间格式(hh:mm:ss)

我从Web服务器获取视频长度值作为滴答.我想以"hh:mm:ss"格式显示它.我怎样才能在JavaScript中执行此操作?

html javascript time

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

ASP.net身份:如何获取当前的IdentityUser(ApplicationUser)?UserManager.FindById在哪里?

我从VS2013中的ASP.net默认模板开始.我想获取当前的用户对象.这可以在不直接访问数据库的情况下实现.

在文档中,这看起来非常简单:http://blogs.msdn.com/b/webdev/archive/2013/10/16/customizing-profile-information-in-asp-net-identity-in-vs-2013 -templates.aspx

所以它应该是

var currentUser = manager.FindById(User.Identity.GetUserId()); 
Run Code Online (Sandbox Code Playgroud)

但是缺少FindById!几个小时后,我一直在尝试使用FindByIdAsync.但我想我得到了死锁.

public class UserManager : UserManager<IdentityUser>
{
    public UserManager()
        : base(new UserStore<IdentityUser>(new ApplicationDbContext()))
    {
    }

    public async System.Threading.Tasks.Task<IdentityUser> GetCurrentUser()
    {
        var user = await FindByIdAsync(HttpContext.Current.User.Identity.Name);
        return user;
    }
}
Run Code Online (Sandbox Code Playgroud)

调用的属性:

private IdentityUser_CurrentUser;
protected IdentityUser CurrentUser
{
    get
    {
        if (_CurrentUser == null)
        {                   
            var manager = new UserManager();
            var result = manager.GetCurrentUser();
            //-- STOPS HERE!!
            _CurrentUser = result.Result;
        }
        return _CurrentUser;
    }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激!要么向我展示FindById已经消失或如何使我的代码工作.或者是否有另一种加载IdentityUser的方法?

添加

在用户管理器中,FindById找不到,但是this.FindById …

c# asp.net webforms asp.net-identity

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

获取当前登录的IdentityUser?

我正在尝试创建一个使用 Windows Identity 和 Entity Framework Code First 的应用程序。所以我正在创建一个自定义类来保存一些数据。

public class Order {
  public string Name { get; set; }
  public DateTime CreatedDate { get; set; }
  public IdentityUser User { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在我尝试将用户表链接到订单表(由实体框架生成)。这样我就可以执行 Order.User 来获取创建订单的用户的用户信息。

我想使用创建一个新订单

new Order {
  Name = "Test",
  CreatedDate = new DateTime(2014, 3, 30),
  User = <What goes here?>
}
Run Code Online (Sandbox Code Playgroud)

现在如何获取当前登录用户的“IdentityUser”?或者我以错误的方式处理这个问题?

entity-framework asp.net-identity entity-framework-migrations

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