Questions tagged «asp.net-identity»

ASP.NET身份系统旨在替代以前的ASP.NET成员资格和简单成员资格系统。

10
ASP.NET身份-HttpContext没有GetOwinContext的扩展方法
我已经从这里下载并成功运行了ASP.NET Identity示例:https: //github.com/rustd/AspnetIdentitySample 我现在在我的项目中正在实施ASP.NET Identity框架,并且遇到了一个问题,这使我整日生气…… GetOwinContext() 作为我的扩展方法不存在 HttpContext 我正在类库中实现身份框架。我已经安装了Identity框架的所有最新版本(预发行版),除此之外,其他所有东西都可以正常工作。 我尝试在控制器中实现与直接相同的代码,并发现相同的问题。 我显然在某处缺少参考,尽管我不知道该怎么办..!.. 杀死我的代码块是: private IAuthenticationManager AuthenticationManager { get { return HttpContext.GetOwinContext().Authentication; } } 我已经添加了对以下内容的引用-在我的类库中尝试了这些内容,也直接在控制器上进行了尝试,它们都不适合我... using Microsoft.AspNet.Identity; using Microsoft.AspNet.Identity.EntityFramework; using Microsoft.Owin.Security; using Microsoft.Owin; using System.Web; ...这把我逼到了墙上....有什么想法吗? 更新 我已经检查了示例中的Identity&OWIN版本,并确保解决方案中具有相同版本。 更重要的是,如果我在示例中搜索对象浏览器GetOwinContext可以找到该方法,但是在我的解决方案中搜索它时,找不到它了……我必须拥有一些过时的库,但是我可以找不到它!

10
ASP.NET MVC 5-身份。如何获取当前的ApplicationUser
我的项目中有一个Article实体,其ApplicationUser属性名为Author。如何获取当前已记录的完整对象ApplicationUser?在创建新文章时,我必须将Author属性设置Article为current ApplicationUser。 在旧的成员资格机制中,这很简单,但是在新的身份方法中,我不知道该怎么做。 我试图这样做: 为身份扩展添加using语句: using Microsoft.AspNet.Identity; 然后,我尝试获取当前用户: ApplicationUser currentUser = db.Users.FirstOrDefault(x => x.Id == User.Identity.GetUserId()); 但是我得到以下异常: LINQ to Entities无法识别方法'System.String GetUserId(System.Security.Principal.IIdentity)',并且该方法无法转换为商店表达式。来源= EntityFramework

7
使用ASP.NET Identity时如何更改表名称?
我正在使用Visual Studio 2013的发行版(RTM,而不是RC)(从MSDN 2013-10-18下载),因此使用的是AspNet.Identity的最新(RTM)版本。创建新的Web项目时,我选择“个人用户帐户”进行身份验证。这将创建下表: AspNetRoles AspNetUserClaims AspNetUserLogins AspNetUserRoles AspNetUsers 当我注册新用户(使用默认模板)时,将创建这些表(上面列出),并且AspNetUsers表插入了一条记录,其中包含: ID 用户名 密码哈希 安全邮票 鉴别器 此外,通过将公共属性添加到“ ApplicationUser”类,我已成功将其他字段添加到AspNetUsers表中,例如“ FirstName”,“ LastName”,“ PhoneNumber”等。 这是我的问题。有没有办法更改上述表的名称(首次创建时),还是总是使用AspNet上面列出的前缀来命名它们?如果可以使用不同的名称命名表,请说明如何使用。 -更新- 我实现了@Hao Kung的解决方案。它的确创建了一个新表(例如,我称其为MyUsers),但它仍然创建了AspNetUsers表。目标是将“ AspNetUsers”表替换为“ MyUsers”表。请参见下面的代码和所创建表的数据库图像。 我实际上想AspNet用我自己的名称替换每个表...对于fxample,MyRoles,MyUserClaims,MyUserLogins,MyUserRoles和MyUsers。 我该如何做到这一点并最终只得到一组表? public class ApplicationUser : IdentityUser { public string FirstName { get; set; } public string LastName { get; set; } public string …

4
ASP.NET身份DbContext混淆
默认代码MVC 5 App随IdentityModels.cs中的这段代码一起提供-此代码段用于默认模板的所有ASP.NET Identity操作: public class ApplicationDbContext : IdentityDbContext<ApplicationUser> { public ApplicationDbContext() : base("DefaultConnection") { } } 如果我使用带有Entity Framework的视图来搭建一个新的控制器,并在对话框中创建一个“ New data context ...”,我将为我生成一个: using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Web; namespace WebApplication1.Models { public class AllTheOtherStuffDbContext : DbContext { // You can add custom code to this …

15
未经授权的webapi调用返回登录页面而不是401
如何配置我的mvc / webapi项目,以使从剃刀视图调用的webapi方法在未经授权时不返回登录页面? 它是一个MVC5应用程序,还具有用于通过javascript进行调用的WebApi控制器。 下面的两种方法 [Route("api/home/LatestProblems")] [HttpGet()] public List<vmLatestProblems> LatestProblems() { // Something here } [Route("api/home/myLatestProblems")] [HttpGet()] [Authorize(Roles = "Member")] public List<vmLatestProblems> mylatestproblems() { // Something there } 通过以下角度代码调用: angular.module('appWorship').controller('latest', ['$scope', '$http', function ($scope,$http) { var urlBase = baseurl + '/api/home/LatestProblems'; $http.get(urlBase).success(function (data) { $scope.data = data; }).error(function (data) { …


3
ASP .NET Identity中的要求是什么
有人可以解释一下,声明机制在新的ASP.NET Identity Core中意味着什么吗? 我所看到的,有一个AspNetUserLogins表,其中包含UserId,LoginProvider和ProviderKey。 但是,我仍然无法理解或找到有关何时将数据添加到AspNetUserClaims表以及该表用于什么情况的任何信息?

3
什么是ASP.NET Identity的IUserSecurityStampStore <TUser>接口?
查看ASP.NET标识(​​ASP.NET中的新成员实现),实现自己的接口时遇到了这个接口UserStore: //Microsoft.AspNet.Identity.Core.dll namespace Microsoft.AspNet.Identity { public interface IUserSecurityStampStore&lt;TUser&gt; : { // Methods Task&lt;string&gt; GetSecurityStampAsync(TUser user); Task SetSecurityStampAsync(TUser user, string stamp); } } IUserSecurityStampStore默认情况下实现,EntityFramework.UserStore&lt;TUser&gt;它本质上是获取和设置TUser.SecurityStamp属性。 经过进一步的挖掘后,看起来a SecurityStamp是一个Guid在UserManager(例如,更改密码)的关键点上新生成的a 。 由于我正在Reflector中检查此代码,因此我无法真正理解更多内容。几乎所有符号和异步信息都已优化。 另外,Google并没有太大帮助。 问题是: 什么是SecurityStampASP.NET身份标识?它的作用是什么? SecurityStamp创建身份验证Cookie时是否发挥作用? 是否需要采取任何安全措施或预防措施?例如,不将此值向下游发送给客户吗? 更新(9/16/2014) 此处提供源代码: https://github.com/aspnet/Identity/ https://github.com/aspnet/Security/

3
将ASP.NET MVC5身份验证添加到现有项目
我在网络上看到过很多类似的页面,但是大多数页面使用的是新项目而不是现有的项目,或者没有必要的功能。因此,我有一个现有MVC 5项目,希望将ASP.NET MVC5 Identity与登录,电子邮件确认和密码重置功能集成在一起。 除此之外,我还需要在数据库上创建所有必要的表,即用户,角色,组等。(我在项目中使用EF Code First)。是否有符合这些需求的文章或样品?任何建议,将不胜感激。提前致谢...

4
ASP.NET Identity的默认密码哈希器-它如何工作且安全?
我想知道MVC 5和ASP.NET Identity Framework随附的UserManager中默认实现的密码哈希器是否足够安全?如果可以的话,如果您能向我解释一下它是如何工作的? IPasswordHasher接口看起来像这样: public interface IPasswordHasher { string HashPassword(string password); PasswordVerificationResult VerifyHashedPassword(string hashedPassword, string providedPassword); } 如您所见,它并不需要花很多精力,但是在该线程中提到了这一点:“ Asp.net身份密码哈希 ”确实在后台添加了盐。所以我想知道它是如何做到的?这种盐从哪里来? 我担心的是盐是静态的,使其非常不安全。

9
如何获取当前用户,以及如何在MVC5中使用User类?
如何获取MVC 5中当前登录用户的ID ?我尝试了StackOverflow建议,但似乎不适用于MVC 5。 另外,将素材分配给用户的MVC 5最佳实践是什么?(例如,User应该有Items,我应该存储在用户Id的Item?我可以扩展User与类List&lt;Item&gt;导航属性? 我正在使用MVC模板中的“个人用户帐户”。 尝试了这些: 如何在MVC应用程序中获得当前用户? 如何在ASP.NET MVC中获取当前用户 获取登录的用户ID-这将引发以下情况: 'Membership.GetUser()'为空。

9
ASP.NET_SessionId + OWIN Cookies不会发送到浏览器
使用Owin Cookie身份验证存在一个奇怪的问题。 当我启动IIS服务器时,身份验证在IE / Firefox和Chrome上运行正常。 我开始使用身份验证进行一些测试,然后在不同的平台上登录,但遇到了一个奇怪的错误。有时,Owin框架/ IIS不会向浏览器发送任何cookie。我将输入正确的用户名和密码,代码可以运行,但根本不会将cookie发送到浏览器。如果我重新启动服务器,它开始工作,那么在某个时候,我将尝试登录,并且cookie再次停止发送。单步执行代码不会执行任何操作,也不会引发任何错误。 app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationMode = AuthenticationMode.Active, CookieHttpOnly = true, AuthenticationType = "ABC", LoginPath = new PathString("/Account/Login"), CookiePath = "/", CookieName = "ABC", Provider = new CookieAuthenticationProvider { OnApplyRedirect = ctx =&gt; { if (!IsAjaxRequest(ctx.Request)) { ctx.Response.Redirect(ctx.RedirectUri); } } } }); 在我的登录过程中,我有以下代码: IAuthenticationManager authenticationManager …

5
AspNet Core脚手架应用程序中的“登录”和“注册”页面在哪里?
在VS 2017中,我创建了一个新的ASP.NET Core Web应用程序。在向导的第二页上,选择“ Web应用程序”,并为“身份验证”选择“个人用户帐户”。 现在,我正在尝试查找与/ Account / Register和/ Account / Login关联的页面。 _Layout.cshtml引入_LoginPartial.cshtml,就像在经典MVC中一样: &lt;div class="navbar-collapse collapse"&gt; &lt;ul class="nav navbar-nav"&gt; &lt;li&gt;&lt;a asp-page="/Index"&gt;Home&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a asp-page="/About"&gt;About&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a asp-page="/Contact"&gt;Contact&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;partial name="_LoginPartial" /&gt; &lt;/div&gt; 如果用户未登录,则_LoginPartial包含&lt;a&gt;指向登录和注册页面的标记: &lt;ul class="nav navbar-nav navbar-right"&gt; &lt;li&gt;&lt;a asp-area="Identity" asp-page="/Account/Register"&gt;Register&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a asp-area="Identity" asp-page="/Account/Login"&gt;Login&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; 一切似乎都说得通。但是我希望Areas文件夹结构包含Register和Login文件夹。它不是。我唯一找到的是_ViewStart.cshtml 我知道脚手架的代码可以工作,当我运行项目时,“注册”链接指向“ / Identity / Account / Register”,而“登录”链接指向“ …

6
如何扩展User.Identity的可用属性
我正在使用MVC5 Identity 2.0,以便用户登录到我的网站,该网站的身份验证详细信息存储在SQL数据库中。在许多在线教程中都可以找到以标准方式实现的Asp.net Identity。 IdentityModels中的ApplicationUser类已扩展为包括一些自定义属性,例如整数OrganizationId。这个想法是为了数据库关系的目的,可以创建许多用户并将其分配给一个通用组织。 public class ApplicationUser : IdentityUser { public async Task&lt;ClaimsIdentity&gt; GenerateUserIdentityAsync(UserManager&lt;ApplicationUser&gt; manager) { // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); // Add custom user claims here return userIdentity; } //Extended Properties public DateTime? BirthDate { get; …

13
如何在ASP.NET Core中获得当前用户
我想要一个当前用户来获取用户的信息,例如电子邮件。但是我不能在asp.net核心中做到这一点。我很困惑这是我的代码。 HttpContext在控制器的构造函数中几乎为null 。在每个动作中都吸引用户是不好的。我想一次获取用户信息并设置为ViewData; public DashboardController() { var user = HttpContext.User.GetUserId(); }

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.