2013-08-04 16 views
16

Diğer web uygulamalarına bazı API çağrıları gerçekleştiren bir asp.net mvc web uygulaması üzerinde çalışıyorum. ancak şu anda kodumun içinde API kullanıcı adı, API şifresi ve API URL'si saklıyorum. aşağıdaki gibi: -En iyi şekilde benim ASP.NET mvc uygulamasında yapılandırma ayarı saklamak için yolu

using (var client = new WebClient()) 
       { 
        // client.Headers[HttpRequestHeader.Accept] = "AddAsset"; 
        var query = HttpUtility.ParseQueryString(string.Empty); 
        foreach (string key in formValues) 
        { 
         query[key] = this.Request.Form[key]; 
        } 

        query["username"] = "testuser"; 
        query["password"] = "……"; 
        query["assetType"] = "Rack"; 
        query["operation"] = "AddAsset"; 
var url = new UriBuilder("http://win-spdev:8400/servlets/AssetServlet"); 
        url.Query = query.ToString(); 
        try 
        { 

Ama durumunda esnek olmayacak bunlar benim kod içine ayarını saklamak ben API çağrısı ayarlarını değiştirmek gerekir ve bu güvenli değildir. Bu ayarı saklamanın en iyi yolu nedir? URL'yi depolamak için iki veritabanı tablosu oluşturmayı düşünüyordum (ve gelecekte birden çok URL olabilir). Ve kullanıcı adı ve şifre saklamak için başka bir tablo. Bu nedenle, veritabanı tablolarını bu ayarları depolamak için doğru yolu yaratıyor.

+2

. Güvenlik gerektiren ayarları da şifreleyebilirsiniz. – Marko

cevap

33

Bu ayarları kaydetmek için Web.config dosyası (Configuration API) kullanmalıdır. Bu şekilde, tüm uygulamanızı her seferinde yeniden derlemek zorunda kalmadan ayarları güncelleyebileceksiniz. Bu, bir Web (MVC veya WebForms) uygulamasında ayarları depolamanın en standart yoludur ve uygulamanıza şeffaf bir şekilde encrypt sensitive settings olanağı sağlar.

Sen WebConfigurationManager sınıfı kullanılarak saklanır ayarlara erişebilirsiniz. Here, nasıl kullanılacağı hakkında bazı örnekler bulabilirsiniz.

kod örneği:

Web.config appSettings:

<appSettings> 
    <add key="ApiUserName" value="MySampleUsername" /> 
</appSettings> 

C# Kod: Eğer web.config dosyasında saklamak olabilir

string userName = System.Web.Configuration.WebConfigurationManager.AppSettings["ApiUserName"]; 
+1

bu yüzden onları web.config dosyasına manuel olarak eklemeliyim? ama onları nasıl geri alabilirim ve nasıl şifreleyebilirim sonra da hassas verilerin şifresini çözebilirim? –

+2

Kullanarak bunları geri alabilirsiniz: ConfigurationManager.AppSettings ["Username"] örneğin – Marko

+0

@johnG Cevabımı, sizin için yararlı olabilecek bazı referanslarla güncelledim. – Meryovi

İlgili konular