[英]How to apply custom validations into role providers in ASP.NET MVC5 with ASP.Net Identity?
我用新屬性修改了 UserRole 實體。 我需要驗證用戶登錄並根據這些屬性生成基於角色的菜單。
public class ApplicationUserRole : IdentityUserRole
{
/// <summary>
/// Initializes a new instance of the <see cref="ApplicationUserRole"/> class.
/// </summary>
public ApplicationUserRole()
: base()
{
this.ValidFrom = DateTime.Now;
this.ValidTo = DateTime.Now;
}
/// <summary>
/// Gets or sets the valid from.
/// </summary>
/// <value>The valid from.</value>
public virtual DateTime? ValidFrom { get; set; }
/// <summary>
/// Gets or sets the valid to.
/// </summary>
/// <value>The valid to.</value>
public virtual DateTime? ValidTo { get; set; }
}
如果登錄日期不在有效日期范圍內,則需要顯示用戶登錄已過期消息,如果分配了多個角色且已過期,則需要在菜單列表中隱藏這些菜單項。
您可以使用自定義 ValidationAttribute
using System.ComponentModel.DataAnnotations;
public class ValidDates : ValidationAttribute
{
protected override ValidationResult
IsValid(object value, ValidationContext validationContext)
{
var model = (Models.Employee)validationContext.ObjectInstance;
DateTime _validFrom = Convert.ToDateTime(model.validFrom);
DateTime _validTo = Convert.ToDateTime(model.ValidTo);
if(validation condition is true)
return ValidationResult.Success;
else
return ValidationResult.failure;
}
}
並使用屬性 ValidDates 裝飾您的 ApplicationUserRole 類。
[ValidDates]
public class ApplicationUserRole : IdentityUserRole
{ //other class implementation }
有關更多信息,請檢查MVC 自定義屬性驗證
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.