簡體   English   中英

如何使用 ASP.Net Identity 將自定義驗證應用於 ASP.NET MVC5 中的角色提供程序?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM