Bir ASP.NET Web API projesinde, tüm yanıtlarda tüm varlık kimliklerini şifrelemek ve şifrelenmiş değerleri tüm isteklerde çözmek istiyorum.ASP.NET Web API'sinde Basit Özellik Üzerinde Özel Tür Dönüştürücü
(NOT:. I/şifrelemek verilerin şifresini çözmek için nasıl, sorum değildir)
Ben sadece ben olarak şifrelenir/gereken özelliklere dekore eğer iyi olacağını düşünüyorum özel bir özelliğe sahip yanıtlar/istekler.
Bu
Ben çalışmak istiyorum nasıl: Web API yönteminde Sonrapublic class Person
{
[EncryptDecrypt]
public int PersonID {get; set;}
public string Name {get; set;}
public IEnumerable<Order> Orders {get; set;}
}
public class Order
{
[EncryptDecrypt]
public long OrderID {get; set;}
public string Title {get; set;}
public float Price {get; set;}
}
:
// GET: api/persons/xhj$j78dPs (xhj$j78dPs is an encrypted PersonID)
public Person Get([EncryptDecrypt]int personId)
{
// Now, I expect personId to be a normal ID, like: 187356
Person person = _repository.GetPerson(personId);
return person;
}
yukarıdaki Web API için arzu yanıttır:
{
"personId": "xhj$j78dPs",
"name": "Joe Williams",
"orders": [
{
"orderId": "a#jd75mlzed0ihd",
"title": "Buying a new item",
"price": 19.99
}
]
}
Ve bu başka bir örnektir, bu sefer PUT fiil için bir Web API'sı:
/* PUT Request body: */
{
"orderId": "a#jd75mlzed0ihd",
"title": "Buying a new item - edited",
"price": 13.00
}
ilgili Web API yöntemi:
// PUT: api/persons/xhj$j78dPs/orders/ (xhj$j78dPs is an encrypted PersonID)
public void Put([EncryptDecrypt]int personId, Order editedOrder)
{
// I expect personId to be a normal ID, like: 187356
// I expect editedOrder.OrderID to be a normal ID, like: 10000089765
_repository.UpdateOrder(personId, editedOrder);
}
nasıl [EncryptDecrypt]
niteliğini geliştirebilirler?
[EncryptDecrypt]
aslında JsonConverter attribute olmalıdır? Veya özel bir Media Formatter veya Model Binder veya Değer Sağlayıcı veya Parametre Binder mi geliştirmeliyim? Kafam karıştı.
Böyle bir şey ister misiniz? http://www.codemag.com/article/0307041 – Namrehs
Bkz. [Nesnemi dizileştirirken seçili özellikleri nasıl şifreleyebilirim?] (http://stackoverflow.com/q/29196809/10263) nasıl ele alınacağı hakkında bir fikir edinmek için serileştirme sonu. Bunu dizeleri değil, sayısal özellikler üzerinde çalışmasını istediğinizden biraz uyarlamanız gerekir. Web API parametresi kullanımı için özel bir Web API'si olan 'IValueProvider' ve 'ValueProviderFactory' oluşturmak istediğinizi düşünüyorum. Bir göz atın: http: //www.asp.Net/web API/genel/biçimleri-ve-modeli bağlayıcı/parametre bağlayıcı-in-aspnet-internet-api –