簡體   English   中英

在C#代碼中隱藏屬性

[英]Hide a property in c# code

我有一個業務類說User.cs:

  [Serializable]
    public class User
    {

        public int UserID { get; set; }
        public string UserName { get; set; }
        public int Password { get; set; }

    }

在服務器端代碼中,我正在編寫以下代碼以JSON格式序列化用戶對象:

User user=SomeUserBLClass.GetUser(1);
Response.Write(new JavaScriptSerializer().Serialize(user));

我的要求是隱藏發送到客戶端的密碼,即我不希望密碼字段包含在json數據中。 你能幫我解決這個問題嗎?

您可以將[ScriptIgnore]屬性添加到Password

[Serializable]
public class User
{

    public int UserID { get; set; }
    public string UserName { get; set; }

    [ScriptIgnore]
    public int Password {get; set;}
}

如何使用匿名類型和省略密碼?

Response.Write(new JavaScriptSerializer().Serialize(new {UserId = user.UserId, UserName = user.UserName});

完全從用戶對象中排除“密碼”字段,並且僅允許通過ValidateUser或ChangePassword之類的方法在SomeUserBLClass中內部使用后端版本。

您實際上並不希望以任何形式將任何版本的密碼公開給頂層-顯示層始終有機會以某種形式擺動並向客戶端轉儲數據。

從等式中刪除它,只允許對其進行過渡訪問,這不再是一個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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