Tag: 的基于声明的身份

ASP.NET标识中angular色与声明的最佳实践

我对使用ASP.NETIdentity的claims是完全ASP.NETIdentity并希望了解使用Roles and/or Claims的最佳做法。 毕竟这个阅读,我仍然有像… 问:我们不再使用angular色吗? 问:如果是这样,为什么angular色仍然提供? 问:我们是否应该只使用索赔? 问:我们应该一起使用angular色和索赔吗? 我最初的想法是我们“应该”一起使用它们。 我将Claims视为他们支持的Roles子类别。 例如: 作用:会计 声明 :CanUpdateLedger,CanOnlyReadLedger,CanDeleteFromLedger 问:他们是否打算互相排斥? 问:或者仅仅是要求索赔和“完全符合”你要求赔偿? 问:那么这里的最佳做法是什么? 示例:一起使用angular色和声明 当然,你将不得不为此编写自己的属性逻辑… [Authorize(Roles="Accounting")] [ClaimAuthorize(Permission="CanUpdateLedger")] public ActionResult CreateAsset(Asset entity) { // Do stuff here return View(); } 示例:完全符合您的声明 [ClaimAuthorize(Permission="Accounting.Ledger.CanUpdate")] public ActionResult CreateAsset(Asset entity) { // Do stuff here return View(); }

防伪令牌问题(MVC 5)

我有一个反伪造令牌的问题:(我已经创build了我自己的用户类,工作正常,但现在我得到一个错误,每当我去/帐户/注册页面。错误是: types为“ http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier ”或“ http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider ”的声明是不在提供的ClaimsIdentity上。 要启用基于声明的身份validation的防伪标记支持,请validationconfiguration的声明提供程序是否在其生成的ClaimsIdentity实例上提供了这两个声明。 如果configuration的声明提供程序使用不同的声明types作为唯一标识符,则可以通过设置静态属性AntiForgeryConfig.UniqueClaimTypeIdentifier来configuration它。 我发现这篇文章: AntiForgeryToken: A Claim of Type NameIdentifier or IdentityProvider Was Not Present on Provided ClaimsIdentity 所以我改变了我的Application_Start方法: protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); AntiForgeryConfig.UniqueClaimTypeIdentifier = ClaimTypes.Email; } 但是当我这样做,我得到这个错误: 提供的ClaimsIdentity中没有“ http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress ”types的声明。 有没有人遇到过这个? 如果是这样,你知道如何解决它? 提前欢呼, r3plica 更新1 这是我的自定义用户类: public class Profile : User, IProfile { public Profile() : […]