2013-06-26 2 views
-1

J'écris un programme dans Visual Studio 2010 en utilisant C# .Net.C# Définir les justificatifs une seule fois pour plusieurs demandes

Le programme va accéder à plusieurs parties du site (différentes URL), et j'utilise HttpWebRequest et NetworkCredential pour définir le nom d'utilisateur et mot de passe.

À l'heure actuelle, chaque fois que j'envoie une requête, je dois définir les informations d'identification. Existe-t-il un moyen de définir les informations d'identification une seule fois tout au long du processus?

public void setCredential(string url) 
{  
    //set username and password  
    //and get response  
} 

public void Main()  
{ 
    string[] URLs= { url1, url2, url3 };  
    foreach (string url in URLs)  
    {  
     setCredential(url);  
    } 
} 

Comme je l'ai mentionné, par ce faire de cette façon, chaque fois que je vais à une nouvelle URL je vais devoir mettre les informations d'identification, ce qui le rend parfois lent.

J'ai essayé de définir les informations d'identification en dehors de la boucle foreach, mais je n'ai pas pu obtenir de réponse pour url2 et url3. Je me demande s'il y a une meilleure façon de le faire?

- Edit 10h26 -

Désolé si je ne suis pas clair. Ce que je veux dire, c'est que chaque fois que j'essaie d'accéder à une URL, je dois renvoyer le nom d'utilisateur et le mot de passe au serveur. Donc, pour l'exemple de code, je vais devoir envoyer le nom d'utilisateur et le mot de passe 3 fois pour 3 URL différentes.

Je voudrais savoir si je peux envoyer le nom d'utilisateur et le mot de passe une seule fois et accéder aux 3 URLs différentes.

ps. Les 3 URL sont accessibles avec le même nom d'utilisateur et mot de passe.

+1

les variables de classe pourraient aider. –

+0

@David pouvez-vous expliquer plus en utilisant la variable de classe? D'après ce que je comprends, je devrai toujours envoyer le nom d'utilisateur et pw au serveur chaque fois que j'appelle une URL différente. – sora0419

+0

pouvez-vous utiliser des cookies ou des sessions pour enregistrer vos informations d'identification? –

Répondre

1

Passing NetworkCredential to HttpWebRequest in C# from ASP.Net Page

Ce lien est montrant NetworkCache, cela peut être une solution pour vous.

+0

Il semble que la classe CredentialCache soit plusieurs informations d'identification pour une requête, mais je recherche une information d'identification pour plusieurs requêtes (URL). Ou est-ce que ça marche aussi? – sora0419

Questions connexes