使用网络API令牌进行SignalR授权
我试图在此处使用示例项目准确地授权Signalr请求 angularjs authationical 基于这个项目 a href =" http://bitoftech.net/2014/06/01/token-case--authentication-authentication-app-net-web-api-2-opi-2-owin-asp-net-istentity/"使用Web令牌验证.我遇到的问题是,要使用SignalR授权,我必须覆盖SignalR AuthorizeAttribute类: public class QueryStringBearerAuthorizeAttribute : AuthorizeAttribute { public override bool AuthorizeHubConnection(HubDescriptor hubDescriptor, IRequest request) { var token =
0 2024-02-24
编程技术问答社区
提交按钮是否在表单提交时将其值传递给动作方法?
更新: 当表格退回时,将提交其值的控件/字段? 在ASP.NET MVC表单中,如果用户双击"提交"按钮,则表格将两次提交.为了解决这个问题,我实施了解释的解决方案在这里. 这是我的解决方案,在其中我禁用表单上的提交按钮,以免再次单击: function preventFromBeingDoubleSubmitted() { $('form').each(function () { $(this).submit(function (e) { if ($("form").valid()) { // if form is valid, then disable the submit button so it cannot be double clicked (double submitted) $(this).find(':submit').attr('di
4 2024-01-16
编程技术问答社区
OAuth访问和刷新令牌控制/用户密码变更的管理
我们正在开发IN HOUSE移动应用程序和Web API. 我们正在使用ASP.NET Web API 2与ASP.NET Identy 2 Oauth. 我已经启动了API并跑动,并给了我一个承载令牌.但是,我想稍微修改过程流到类似的过程: 应用程序用户使用用户名和密码登录到API. 应用程序收到有效期为30天的刷新. 然后,App请求访问令牌,以提供刷新令牌的API. (如果用户已更改密码或已锁定其帐户,我希望能够无效请求) 应用程序获取访问令牌,该访问令有效期为30分钟,或者如果密码检查失败,则获得401. 该应用程序可以在接下来的29分钟内使用给定的访问令牌访问API.之后,该应用必须使用刷新令牌获得新的访问令牌. 我要这样做的原因是为了阻止用户更改密码后访问API的设备.如果他们的手机被盗,他们需要能够登录到网站并更改密码,以便手机的新所有者无法访问我们的公司服务. 我提出的解决方案是否能够,如果可以的话,这是一个明智的解决方案吗?我还没有忘记任
在Web Api 2中授予刷新令牌时更新角色
我根据 taiseer的博客. 这是我的问题.假设以下情况: 用户登录使用密码并获取刷新令牌和访问令牌.实际上,访问令牌包括他在该应用程序中的角色(因此他的当局在应用程序中).同时,系统管理员将更改此人的角色,因此一旦他的访问权限到期,他想使用刷新令牌获得新的访问令牌,他的新访问令牌必须包括新更新的角色. 在我的" RefreshTokenProvider"类中,我在" Grantresourceownercredentials"方法中使用以下代码来从数据库中获取用户角色,并将其添加到索赔中: var roleManager = new RoleManager(new RoleStore(new ApplicationDbContext())); var y = roleManager.Roles.ToList(); var id = new ClaimsIdentity(cont
8 2024-01-09
编程技术问答社区
如何使用Web API 2 + AspNet Identity 2扩展IdentityRole?
我正在尝试扩展Web API 2(带有单个帐户)模板中最新版本的Visual Studio 2013中提供的ASPNET IdentityRole类. 身份模型 namespace API.Models { // You can add profile data for the user by adding more properties to your ApplicationUser class, please visit http://go.microsoft.com/fwlink/?LinkID=317594 to learn more. public class ApplicationUser : IdentityUser, IUser, IUser { [NotMapped] public virtual
ASP.NET个人信息2.0。如何重述密码
我将用户从传统用户存储迁移到我的ASP.NET 5.0 Web应用程序中的ASP.NET Identity 2.0.我有一种验证遗产哈希的方法,但是我想在登录时间升级到ASP.NET Identity 2.0哈希. 我已经创建了一个自定义IPasswordHasher,它能够检测和验证遗产哈希,并在适当的时间返回PasswordVerificationResult.SuccessRehashNeeded. (如果它检测到哈希不是遗产,它只是落入内置的ASP.NET身份哈希验证.) 但是,返回PasswordVerificationResult.SuccessRehashNeeded似乎并没有导致ASP.NET身份实际做任何事情.当ipasswordhasher返回此结果时,是否有一个配置选项会导致系统重新限制密码? 如果答案对上述内容否,那么是否建议我只是重新敲击并手动更新用户?我在哪里做?我在控制器级别看不到任何位置,我可以看到密码verificationResult
4 2024-01-04
编程技术问答社区
实现UserManager以使用自定义类和存储过程
我应用程序的所有身份验证和授权过程均使用存储过程完成.我已经写了一门我需要的所有功能的课程,例如GetUsers,Login,AddRole,AddMember,等. 另外,用于管理用户以及角色和权限的管理页面是通过使用此类来完成的. 我只需要添加authentication(我的意思是authorize属性),用于登录和注销的cookie,并为每个登录时间存储一些服务器端数据.我认为我需要为此实施Identity? 在这种情况下,您可以指导我实施吗?似乎您需要做的非常基本的事情是实现将IUserStore实例传递给构造函数的方法.但是我不需要为用户或角色提供任何表,我该如何实现此方法? 这是当前类,请让我知道您是否需要查看使用存储过程的自定义身份验证类. public class AppUserManager : UserManager { public AppUserManager(IUserStore store)
2 2024-01-03
编程技术问答社区
每个用户只允许有一个登录会话
本质上,我要问在这里这个问题,但我使用的是ASP身份而不是ASP.NET成员资格提供者,因此,该答案对我没有用. 解决方案 弄清楚了如何做.在登录中,我称之为: var key = user.UserName; var timeOut = new TimeSpan(0, 0, HttpContext.Current.Session.Timeout, 0, 0); HttpContext.Current.Cache.Insert(key, Session.SessionID, null, DateTime.MaxValue, timeOut, CacheItemPriority.NotRemovable, null); ,这在Global.asax 中 if (Session["username"] != null) { var cacheKey = Session["username"].ToString(); if ((st
10 2023-11-30
编程技术问答社区
让ASP.NET身份认证2.0的电子邮件确认令牌在WCF和MVC中发挥作用
我有一个使用相同数据库的服务项目(WCF)和MVC项目,以处理移动和接口部分的服务部件.我必须对两者进行电子邮件确认. 我已经使用Owin ASP.NET 2.0库进行身份验证,并且两个项目都有单独的UserManagers. MVC public static ApplicationUserManager Create(IdentityFactoryOptions options, IOwinContext context) { var dataProtectionProvider = options.DataProtectionProvider; if (dataProtectionProvider != null) { manager.UserTokenProvider = new DataProtectorTokenProviderdataProtectionP
2 2023-11-27
编程技术问答社区
在MVC 5中,无法在AccountController的Login动作中访问User.Identity.GetUserId()。
当前环境 Visual Studio 2015,MVC5,ASP.NET身份2.0,实体框架6.0 问题 我只是在验证用户后尝试获取user.Identity.getUserId(),但在浏览器中获得了"对象参考未设置为对象的实例". 期望 如果可能的话,我想在同一位置上使用user.indistity.getuserid().我徘徊在开始点的起点是我可以在项目中访问user.identity.getuserid(). 代码 // // POST: /Account/Login [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public async Task Login(LoginViewModel model, string returnUrl) { if (!ModelState.IsV
10 2023-11-24
编程技术问答社区
asp.net identity 2.0 unity不能解决默认用户存储问题
我尝试使用unity.mvc5使用MVC 5应用程序使用Identity 2.0和Identity 2.0样本样本样品板,从而获得以下异常.我已经阅读了这篇文章,所以为ASP.NET身份配置Unity DI 我仍然不清楚我缺少的东西.我在这里做错了什么? 当前类型,system.data.common.dbConnection,是一个抽象类,无法构造.您是否缺少类型映射? [ResolutionFailedException:依赖项的分辨率失败,type =" myapp.web.controllers.accountcontroller",name ="(none)". 发生例外时发生: 时. 异常是:InvalidOperationException-当前类型,system.data.common.dbConnection,是一个抽象类,无法构造.您是否缺少类型映射? 例外时,容器为: 解决myapp.web.controllers.accountco
使用身份识别2.0数据库的Moq嘲弄
我成功地基于简单的成员资格数据库,在MVC 5(实体框架6应用程序)中使用MOCQ对我的BusAct控制器进行模拟对我的butact控制器的集成测试.但是现在,我已经将数据库迁移到Identity 2.0,并用Applicationuser替换了用户. IdentityDbContext :(从简单的成员资格DBContext修改) public class MyDb : IdentityDbContext // DbContext { public MyDb () : base("MyApplication") { } // public virtual DbSet UserProfiles { get; set; } public virtual DbSet BusAcnts { get; set; } // marking as virtual allow
4 2023-11-07
编程技术问答社区
为什么asp.net身份认证的用户ID是字符串?
我想在ASP.NET Web API应用程序中使用 System.Guid type作为我所有表的ID.但是我也使用ASP.NET身份,使用 string type ID(也存储GUIDS).所以我想知道为什么默认情况下使用 string id而不是 system.guid ?还有什么更好的选择在所有应用程序中使用 - guid id或 string -Guid ID?如果使用字符串 - 在代码或数据库中生成新ID的最合适和可靠的方法是什么? 解决方案 使用ASP.NET Core,您有一种非常简单的方法来指定Identity模型所需的数据类型. 第一步,覆盖身份类从 到 : public class ApplicationUser : IdentityUser { } public class ApplicationRole : IdentityRole { } 使用您想要的类和数据类型声明您的数据库上下文: public cla
12 2023-11-07
编程技术问答社区
如何用结构图配置ASP.NET Identity ApplicationUserManager?
我在项目中使用ASP.NET身份,并将结构图作为DI框架.问题是当我使用构造函数注入时,applicationusermanager未配置所有成员,例如TokenProvider,... 这是我的applicationusermanager类: public class ApplicationUserManager : UserManager { public ApplicationUserManager(IUserStore store) : base(store) { } public static ApplicationUserManager Create(IdentityFactoryOptions options, IOwinContext context) { var manager = new
用简单注入器注册IAuthenticationManager
我正在为简单喷油器设置配置设置,其中我将所有注册都移至Owin Pipeline. 现在问题是我有一个控制器AccountController,它实际上将参数作为 public AccountController( AngularAppUserManager userManager, AngularAppSignInManager signinManager, IAuthenticationManager authenticationManager) { this._userManager = userManager; this._signInManager = signinManager; this._authenticationManager = authenticationManager; } 现在我的OWIN管道配置看起来像 public void Configure(IAppBuilder app) {
8 2023-09-03
编程技术问答社区
如何强制Asp.Net Identity 2.0使用自定义角色而不是IdentityUserRole?
我扩展了以下 的身份userrole public class ApplicationUserRoles : IdentityUserRole { [Key] public string ApplicationId { get; set; } public virtual AspNetApplications AspNetApplications { get; set; } } 和我的aspnetapplications类如下 public class AspNetApplications { [Key] public string ApplicationId { get; set; } public string ApplicationName { get; set; } } 迁移已在DB中创建了AspnetApplications和ApplicationSerroles表.屏幕截图如下. 以下是
14 2023-08-12
编程技术问答社区
关于MVC和身份的两个问题
我是身份和MVC的新手,我正在尝试创建一个MVC应用程序作为我的第一个项目之一. 我已经能够遵循public class ApplicationUser : IdentityUser { [Required] [Display(Name = "UserName")] [StringLength(50)] public string Handle { get; set; } [StringLength(100, ErrorMessage = "Your {0} can be at most {1} characters long.")] [Display(Name = "First Name")] public string FirstName { get; set; } [StringLength(100, ErrorMessage =
24 2023-07-25
编程技术问答社区
如何在Asp.Net identity 2中手动检查密码?
这实际上可能是一个概念上的问题.在ASP.NET身份中,密码拍摄者每次执行时都会为同一字符串生成不同的哈希. new PasswordHasher.HashPassword("myString"); 现在,如果出于某种原因,我需要手动将用户的输入与保存在数据库中的密码进行比较,那么当我放置用户输入的密码时,我很可能会得到一个不同的字符串,而不是存储在数据库中的密码. 有人可以向我解释一下吗?同一琴弦不应该在同一哈希中产生同一字符串,如果没有,身份本身如何意识到两个不同的哈希实际上是相同的? 解决方案 PasswordHasher每次都会生成不同的哈希,因为它使用 salting "> salting 技术.该技术将哈希密码避免使用字典攻击.顺便说一下,您可以使用以下代码手动验证密码: if(PasswordHasher.VerifyHashedPassword("hashedPassword", "password") != PasswordVer
6 2023-05-21
编程技术问答社区
在WebAPI应用程序中,在哪里过滤身份识别2.0索赔单?
使用OWIN的ASP.NET应用程序允许多个身份源(Facebook,Google等).这些来源提供的大多数提供商规格的信息与我的应用程序无关,甚至可能很大,而且我都不希望在我的cookie中进行整个会话.我的应用主要是WebAPI,但我怀疑这个问题同样适用于MVC和WebForms. 目前,我所需要的只是一个整数帐户ID. 在外部身份验证之后,我应该在哪里/何时重建身份? 例如,这是我可以过滤索赔的一种方法: public ReplaceExistingClaims(ClaimsIdentity identity) { { Claim customClaim = GetCustomClaimFromDbForIdentity(identity); foreach (Claim claim in ClaimsIdentity.Claims) ClaimsIdentity.RemoveClaim(claim); ClaimsIdentity.Add