编辑:这个问题已经过时了 身份框架是我提出这个问题的一个移动目标。 作者改变了很多东西,并将几件事情分离开来,使事情变得更加简单。 看看github上的Asp.NET标识示例项目 。 我正在创build一个需要用户pipe理的小应用程序。 不允许注册,而是有一个超级用户将创build和修改login信息。 我正在使用新的ASP.NET身份authentication系统,当然,创build用户和添加angular色非常简单直观。 现在,我的问题是:如何获得使用生成的AccountController类使用的AuthenticationIdentityManager类的用户列表? 我找不到从我的控制器访问用户列表的方法。 (顺便说一下,新名称“身份”对某些人来说可能听起来很棒,但这是一种痛苦)。 编辑 :如果我试图做到这一点 ApplicationDbContext UsersContext = new ApplicationDbContext(); UsersContext.Users.ToList(); // Exception 我收到一个exceptionInvalid column name 'Discriminator' 。 ApplicationDbContext的定义由新应用程序向导自动生成: using Microsoft.AspNet.Identity.EntityFramework; namespace Cobranzas.Models { public class ApplicationUser : User { } public class ApplicationDbContext : IdentityDbContextWithCustomUser<ApplicationUser> { } } 所以我的猜测是Discriminator列是用来Discriminator UserUser从User 。 但是,它不存在于我的数据库(它是由应用程序自动创build的)。
我是相对较新的ASP.Net MVC,现在尝试使用内置的用户loginfunction。 我可以在注册视图中注册一个用户。 如果我尝试使用创build的用户login,这也可以。 我被redirect到主页面。 但我无法获得当前用户的用户名。 我在HomeController和AccountController中尝试了我的代码,但都没有工作。 第一行中的语句总是返回null。 var userID = User.Identity.GetUserId(); if (!string.IsNullOrEmpty(userID)) { var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(ApplicationDbContext.Create())); var currentUser = manager.FindById(User.Identity.GetUserId()); } 在获取用户ID之前,我还需要做些什么吗?
我创build了一个实现IUser<int>的ViewModel( UserModel )(用于定制ASP.NET Identity 2.0) public class UserModel : IUser<int> { public int Id { get; set; } public string SecurityStamp { get; set; } [Display(Name = "Name")] public string FirstName { get; set; } [Display(Name = "Last Name")] public string LastName { get; set; } public string FullName { get; set; } [Display(Name = […]
我创build了一个基于angular色的菜单,我按照这个教程。 在那个页面的一些地方你会看到这行代码: String[] roles = Roles.GetRolesForUser(); 它返回当前login用户的所有angular色。 我想知道如何用新的ASP.NET身份系统来实现这个function? 这还是很新的,没有什么可以find的。
也许我的googlin的技能今天早上不是很好,但我似乎无法find如何设置不同的密码要求(而不是最小/最大长度)与一个新的asp.net mvc5项目使用个人用户帐户。 [Required] [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] [DataType(DataType.Password)] [Display(Name = "Password")] public string Password { get; set; } 我不知道我想要做什么密码要求,但可能是最小长度,需要一个小写字母,大写字母和数字的组合。 任何想法如何我可以做到这一点(通过模型属性最好)?
在提出这个问题之前,我已经尽力searchnetworking了。 我在stackoverflow上看到过类似的问题,但是现在很长一段时间都没有得到满意的结果。 这是再次尝试得到这个经常性的问题的答案。 问题 如何构build一个为Intranet用户使用“Windows身份validation”的ASP.NET MVC 5网站,为Internet用户构build“Forms Auth”? 我们希望使用ASP.NET身份来实现这一点。 而且,我们不希望使用Active Directory组进行授权。 对于Intranet用户,我们希望使用Active Directory对其进行身份validation,然后回退到ASP.NET身份来pipe理其angular色和其他个人资料数据。 如果我们不要求最终用户selectauth方法,那将会很好。 Web应用程序应该无缝地login到Intranet用户。 他们甚至不应该知道有一个login屏幕。 同样,不应要求互联网用户input他们的域名证书。 他们应该立即看到基于表单的login屏幕。 有没有解决这个问题的build议方法? 或者,如果以下任何一种解决scheme是正确的,你能否评论? http://world.episerver.com/blogs/Dan-Matthews/Dates/2014/8/Mixing-Forms-and-Windows-Authentication/ https://github.com/MohammadYounes/MVC5-MixedAuth IIS 7.0 Two-Level Authentication with Forms Authentication and Windows Authentication 仅供参考这是2004年的文章,现在可能没有帮助: https : //msdn.microsoft.com/en-us/library/ms972958.aspx
我一直在研究ASP.NET Identity 2.1新版本的新function,其中一个增强function是集成到OWIN中间件中的新IoCfunction。 我在例子中看到的一个句子是这样的: app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create); 这个句子接收一个函数委托,它返回一个在例子中提供的pipe理器实现的新实例: public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context) { var manager = new ApplicationUserManager(new UserStore<ApplicationUser>(context.Get<ApplicationDbContext>())); 我个人不喜欢这个实现,因为我不能使用容器来为这些pipe理者注入任何依赖。 另外还有一个“IdentityFactoryOptions”和一个“IOwinContext”,它们被“神奇地”注入到了Im不能够拉入我的IoC容器的函数中。 有没有人有这个实施更好的解决方法?
我想获取当前用户获取电子邮件等用户的信息。 但我不能这样做在asp.net核心。我很困惑这是我的代码。 HttpContext在控制器的构造函数中几乎为null。 在每次操作中获取用户并不好。我想获取一次用户信息,并将其设置为ViewData ; public DashboardController() { var user = HttpContext.User.GetUserId(); }
我在我的应用程序中使用ASP.NET身份发生错误。 不支持每种types的多个对象集。 对象集“身份用户”和“用户”都可以包含“推荐Platform.Models.ApplicationUser”types的实例。 我在stackoverflow中看到了一些关于这个错误的问题。 全部在相同types的两个DbSet对象上指示。 但是在我的DbContext中,不存在相同types的DbSets。 FindInync()方法在login期间引发的exception。 if (ModelState.IsValid) var user = await UserManager.FindAsync(model.UserName, model.Password); if (user != null && user.IsConfirmed) { 问题是我没有相同types的两个DbSets。 我的上下文看起来像这样: public class ApplicationDbContext : IdentityDbContext<ApplicationUser> { public ApplicationDbContext() : base("DefaultConnection") { } public System.Data.Entity.DbSet<RecommendationPlatform.Models.ApplicationUser> IdentityUsers { get; set; } } 和 public class RecContext : DbContext { public RecContext() : base("RecConnection") […]
我是新来的ASP.NET MVC,我一直在开发一个MVC 5应用程序与个人用户authentication。 我一直在做分层模式,当做我的应用程序,如分离模型层,DAL层,回购等,但现在在MVC 5,我想能够使用用户和angular色pipe理和身份validation,他们称之为身份,然后对我的应用程序仍然具有这种分层结构,因为现在看起来,Identity与MVC项目本身以及用户和angular色模型以及上下文都非常相关。 我现在在应用程序中所做的是在MVC项目(在单独的文件夹中)中,我拥有所有我想要的单独图层,例如我的DAL,UnitOfWork,Repos,其他模型等,以便使其工作,现在。 而且我知道这不是正确的做法。 那么,任何人都可以向我提供一些关于这个问题的好例子或文章,或者如果可能或者不可以直接解释它,怎么样? Google对此并不友善。 谢谢!