我有一个反伪造令牌的问题:(我已经创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() : […]
我们公司有多个域名,每个域名都有一个网站。 在这个时候,每个域都有自己的authentication,这是通过cookie完成的。 当某人login到一个域需要访问另一个域的任何内容时,用户需要使用位于另一个域上的另一个网站上的不同凭据再次login。 我正在考虑走向单点login(SSO),这样可以消除这个麻烦。 对于如何实现这一点,我将不胜感激,因为我在这方面没有任何经验。 谢谢。 编辑:网站是互联网(外部)和内部网(公司内部使用)网站的组合。
我正在创build一个多租户网站,为客户提供页面托pipe服务。 URL的第一部分将是一个string,标识客户端,使用以下URL路由scheme在Global.asax中定义: "{client}/{controller}/{action}/{id}" 这工作正常,与/ foo / Home / Index的URL。 但是,当使用[Authorize]属性时,我想redirect到一个也使用相同映射scheme的login页面。 因此,如果客户端是foo,那么login页面将是/ foo / Account / Login,而不是web.config中定义的固定/帐户/loginredirect。 MVC使用HttpUnauthorizedResult返回401未授权状态,我认为这会导致ASP.NETredirect到web.config中定义的页面。 那么有谁知道如何重写ASP.NETloginredirect行为? 或者,通过创build一个自定义授权属性在MVC中redirect会更好吗? 编辑 – 答:一些挖掘到.Net源,我决定一个自定义的身份validation属性是最好的解决scheme: public class ClientAuthorizeAttribute: AuthorizeAttribute { public override void OnAuthorization( AuthorizationContext filterContext ) { base.OnAuthorization( filterContext ); if (filterContext.Cancel && filterContext.Result is HttpUnauthorizedResult ) { filterContext.Result = new RedirectToRouteResult( new RouteValueDictionary { { "client", […]
我看过文档/网站显示自定义validation器应该在项目的/lib或/lib/validators目录中。 我发现(通过阅读另一篇文章的答案),他们似乎只能在config/initializers 。 有谁知道,或有一个指向官方文件的指针,显示自定义validation器应该居住在哪里?
我怎样才能让用户使用ASP.net MVCinputHTML到特定的字段。 我有一个很长的forms,有很多字段映射到控制器中的这个复杂的对象。 我想在一个领域(描述)允许HTML,我将在稍后的时间对自己的卫生进行预处理。
轨道是否有一个像validates_numericality_of为布尔validation器,或者我需要滚动我自己?
你用什么来validation用户的电子邮件地址,为什么? 我一直在使用实际查询MX服务器的validates_email_veracity_of 。 但是由于种种原因,这种情况充满了失败,主要与networkingstream量和可靠性有关。 我环顾四周,找不到有很多人用来对电子邮件地址进行健全性检查的事情。 有没有一个维护,相当准确的插件或创业板? PS:请不要告诉我发送带链接的电子邮件,看看电子邮件是否有效。 我正在开发一个“发送给朋友”的function,所以这是不实际的。
我怎样才能得到一个<input type="number">字段的“真实”值? 我有一个input框,我使用了更新的HTML5inputtypesnumber : <input id="edQuantity" type="number"> Chrome 29主要支持这个function: 我现在需要的是能够读取用户在input框中input的“原始”值。 如果用户input了一个数字: 那么edQuantity.value = 4 ,一切都很好。 但是,如果用户input无效的文本,我想为红色的input框着色: 不幸的是,对于type="number"input框,如果文本框中的值不是数字,那么value将返回一个空string: edQuantity.value = "" (String); (至less在Chrome 29中) 如何获得<input type="number">控件的“原始”值? 我试图通过铬的input框的其他属性的列表: 我没有看到类似于实际input的任何内容。 我也不能find一个方法来判断这个盒子是否是空的 。 也许我可以推断: value isEmpty Conclusion ============= ============= ================ "4" false valid number "" true empty box; not a problem "" false invalid text; color it red 注意 […]
我使用了HTML5 Boilerplate正在使用的元素,W3C HTMLvalidation器抱怨: Bad value X-UA-元素meta上属性http-equiv的兼容性。 <meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'> 这个meta标签有什么问题?
如何使用数据注释在模型上进行条件validation? 例如,假设我们有以下模型(Person和Senior): public class Person { [Required(ErrorMessage = "*")] public string Name { get; set; } public bool IsSenior { get; set; } public Senior Senior { get; set; } } public class Senior { [Required(ErrorMessage = "*")]//this should be conditional validation, based on the "IsSenior" value public string Description { get; set; } } […]