<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Web Services</title><link>https://www.dotnetzone.gr:443/cs/forums/21/ShowForum.aspx</link><description>Συζήτηση περί των web services και WSE, την υλοποίησή τους με το .NET Framework, καθώς και θέματα interoperability με άλλα συστήματα</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Web Service απαιτεί WS-Security header. Το Username και Password tags είναι άδεια. (WSE 3.0)</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/70183.aspx</link><pubDate>Mon, 30 Apr 2012 22:19:51 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:70183</guid><dc:creator>Τάσκος Γιώργος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/70183.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=21&amp;PostID=70183</wfw:commentRss><description>Ναι, το using είναι καλύτερα, θα το αλλάξω.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Η αλήθεια είναι πως όχι, τα customBinding μου τα έφτιαξε το proxy όπως και στις αρχές και μου έβαλε και κάποια σχόλια για attributes που δεν καταλάβαινε.&lt;/div&gt;&lt;div&gt;Έφτιαξα αυτό το Security tag με αυτά τα attributes που βλέπεις, και είμαι χαρούμενος :)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Τελικά ήταν ποιο εύκολο κι ο δρόμος που είχα πάρει λάθος, δεν υπήρχε λόγος για WSE 3.0 και ιστορίες.&lt;/div&gt;&lt;div&gt;WCF από ότι δείχνει είναι καλό και με non WCF services. Και ήταν η πρώτη φορά που έπρεπε να το χρησιμοποιήσω για τέτοιο service.&lt;/div&gt;&lt;div&gt;Όταν ελέγχεις και τις δύο πλευρές συνήθως όλα είναι ποιο εύκολα!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;ROCKS!&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Thanx.&lt;/div&gt;</description></item><item><title>Απ: Web Service απαιτεί WS-Security header. Το Username και Password tags είναι άδεια. (WSE 3.0)</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/70181.aspx</link><pubDate>Mon, 30 Apr 2012 20:33:32 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:70181</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/70181.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=21&amp;PostID=70181</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Τάσκος Γιώργος:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Χμμμ, έβγαλα το using κι έπαιξε!!! μου φένεται περίεργο όμως.&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;div&gt;H Dispose εσωτερικά καλεί την Close, φαίνεται και στο call stack. Ουσιαστικά προσπαθείς να κλείσεις δύο φορές το ίδιο αντικείμενο. Βγάλε το Close, όχι το using, διαφορετικά θα πρέπει να κλείσεις τον κώδικα σου σε try/finally και να περάσεις το Close στο finally - &amp;nbsp;ό,τι κάνει αυτόματα για σένα το using.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Τάσκος Γιώργος:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Tahoma, Arial, Helvetica;font-size:12px;text-align:left;"&gt;Προσθέτοντας απλά αυτό το Security tag&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Tahoma, Arial, Helvetica;font-size:12px;text-align:left;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Tahoma, Arial, Helvetica;font-size:12px;text-align:left;"&gt;Δεν έχεις προσθέσει απλά το security tag, έχεις βάλει κάμποσα πράγματα μέσα. Αυτά δεν τα βάζει μόνο του το WCF ή μήπως απαιτεί το άλλο service κάποια attributes που δεν μπαίνουν αυτόματα?&lt;/span&gt;&lt;/div&gt;</description></item><item><title>Απ: Web Service απαιτεί WS-Security header. Το Username και Password tags είναι άδεια. (WSE 3.0)</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/70164.aspx</link><pubDate>Mon, 30 Apr 2012 02:58:34 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:70164</guid><dc:creator>Τάσκος Γιώργος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/70164.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=21&amp;PostID=70164</wfw:commentRss><description>Προσθέτοντας απλά αυτό το Security tag έπαιξε as expected. Και δεν χρειάζεται το Nonce στην περίπτωση μου.&lt;div&gt;Έτσι λένε απλά, τουλάχιστον για την ώρα.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;security&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;defaultAlgorithmSuite&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="Default"&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;authenticationMode&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="UserNameOverTransport"&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;requireDerivedKeys&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="true"&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;includeTimestamp&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="true"&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;messageSecurityVersion&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10"&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;secureConversationBootstrap&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;/&amp;gt;&lt;/span&gt;
          &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;security&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;Ευχαριστώ για την βοήθεια.&lt;/div&gt;</description></item><item><title>Απ: Web Service απαιτεί WS-Security header. Το Username και Password tags είναι άδεια. (WSE 3.0)</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/70151.aspx</link><pubDate>Sat, 28 Apr 2012 06:19:11 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:70151</guid><dc:creator>Τάσκος Γιώργος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/70151.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=21&amp;PostID=70151</wfw:commentRss><description>Από ότι βλέπω πρέπει να παίζει. Θα το κάνω καλό test και θα δώσω την λύση.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Ευχαριστώ.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description></item><item><title>Απ: Web Service απαιτεί WS-Security header. Το Username και Password tags είναι άδεια. (WSE 3.0)</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/70150.aspx</link><pubDate>Sat, 28 Apr 2012 05:45:37 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:70150</guid><dc:creator>Τάσκος Γιώργος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/70150.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=21&amp;PostID=70150</wfw:commentRss><description>Χμμμ, έβγαλα το using κι έπαιξε!!! μου φένεται περίεργο όμως.</description></item><item><title>Απ: Web Service απαιτεί WS-Security header. Το Username και Password tags είναι άδεια. (WSE 3.0)</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/70149.aspx</link><pubDate>Sat, 28 Apr 2012 05:34:57 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:70149</guid><dc:creator>Τάσκος Γιώργος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/70149.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=21&amp;PostID=70149</wfw:commentRss><description>&lt;pre&gt;&lt;br&gt;&lt;/pre&gt;&lt;pre&gt;Δοκίμασα να κάνω implement τα παραπάνω.&lt;/pre&gt;&lt;div&gt;Με Add Service Reference δημιούργησα τον proxy.&lt;br&gt;&lt;div&gt;Αφού στο SO λέει ότι χρειάζομαι wsHttpBinding έκανα το εξής:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;      &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;wsHttpBinding&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;binding&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="SoapWithAuth"&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;useDefaultWebProxy&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="false"&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;
          &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;security&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;mode&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="TransportWithMessageCredential"&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;transport&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;clientCredentialType&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="Basic"&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;proxyCredentialType&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="None"&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;realm&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=""&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;/&amp;gt;&lt;/span&gt;
          &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;security&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;binding&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;wsHttpBinding&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;      &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;endpoint&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="MessagePort"&lt;/span&gt;
          &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;address&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="https://server:443/service/MessageService"&lt;/span&gt;
          &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;binding&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="wsHttpBinding"&lt;/span&gt;
          &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;bindingConfiguration&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="SoapWithAuth"&lt;/span&gt;
          &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;contract&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="MessageServiceTest.MessageType"&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;Επειδή πρέπει να κάνω και accept το Server Certificate και να καλέσω το Service έχω γράψει το παρακάτω :&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;            ServicePointManager.ServerCertificateValidationCallback += (se, cert, chain, sslerror) =&amp;gt;
            {
                &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;true&lt;/span&gt;;
            };

            ServicePointManager.Expect100Continue &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;false&lt;/span&gt;;

            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; (MessageTypeClient client &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; MessageTypeClient())
            {
                
                client.ClientCredentials.UserName.UserName &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; token.Username;
                client.ClientCredentials.UserName.Password &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; token.Password;
                
                MessageRequest req &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; MessageRequest
                {
                    xmlMessage &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; documentXml
                };

                client.Open();
                
                RequestResult result &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; client.processMessage(req);

                client.Close();

                &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;if&lt;/span&gt; (result.resultState.status !&lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; RequestState.OK)
                {
                    &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;throw&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; MessageException(ResultToString(result.resultState), ErrorsToString(result.ProcessingErrors));
                }
            }&lt;/span&gt;&lt;/pre&gt;Και παίρνω exception στο client.Open().&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;System.ServiceModel.CommunicationObjectFaultedException: The communication &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;object&lt;/span&gt;, System.ServiceModel.Channels.ServiceChannel, cannot be used &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;for&lt;/span&gt; communication because it &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;is&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;in&lt;/span&gt; the Faulted state.

Server stack trace: 
   at System.ServiceModel.Channels.CommunicationObject.Close(TimeSpan timeout)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&amp;amp; msgData, Int32 type)
   at System.ServiceModel.ICommunicationObject.Close(TimeSpan timeout)
   at System.ServiceModel.ClientBase`1.System.ServiceModel.ICommunicationObject.Close(TimeSpan timeout)
   at System.ServiceModel.ClientBase`1.Close()
   at System.ServiceModel.ClientBase`1.System.IDisposable.Dispose()&lt;/span&gt;&lt;/pre&gt;Σας λέει τίποτα?&lt;/div&gt;&lt;div&gt;Ενώ το state είναι Created! Δεν πρέπει να γίνει Open?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Ευχαριστώ.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description></item><item><title>Απ: Web Service απαιτεί WS-Security header. Το Username και Password tags είναι άδεια. (WSE 3.0)</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/70138.aspx</link><pubDate>Thu, 26 Apr 2012 20:00:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:70138</guid><dc:creator>Τάσκος Γιώργος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/70138.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=21&amp;PostID=70138</wfw:commentRss><description>Ευχαριστώ πολύ για την ξεκάθαρη απάντηση σου.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;1. Το άφησα στο proxy generation και ίσως για αυτό να απέτυχα με τον WCF client. Προσπάθησα με χαζές μεθόδους κι extensions όπου βρήκα.&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; Αυτός ο σύνδεσμος δείχνει να έχει την λύση που χρειάζομαι. Άφησα τα customBindings που μου δημιούργησε, εμπιστευόμενος προφανώς ότι όλα&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; θα γίνουν μαγικά :). No, don't think so. Είδα και πολλά παράπονα περί WCF client να κάνει κλήση σε non ASMX services και τέτοια.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; Will try as soon as possible and let you know the result.&lt;/div&gt;&lt;div&gt;2. Το service καλώς η κακώς απαιτεί PlainTextPassword, αλλά είναι https.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Ναι το service απαιτεί όπως δείχνουν το digest (&amp;lt;Nonce /&amp;gt;), θα τα δοκιμάσω όλα όσα περιγράφεις.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Ευχαριστώ πολύ, μου έφτιαξες την μέρα, αν παίξει κιόλας, θα γίνω ένας ευτυχισμένος ακόμα άνθρωπος σήμερα :)&lt;/div&gt;</description></item><item><title>Απ: Web Service απαιτεί WS-Security header. Το Username και Password tags είναι άδεια. (WSE 3.0)</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/70137.aspx</link><pubDate>Thu, 26 Apr 2012 17:21:33 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:70137</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/70137.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=21&amp;PostID=70137</wfw:commentRss><description>Και γιατί χρησιμοποιείς το καταργημένο WSE ??? Το WSE παρείχε υποστήριξη για WS-* στην προ-WCF εποχή.&amp;nbsp;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Δοκίμασες με WCF πριν δοκιμάσεις να κάνεις την επικοινωνία με το χέρι? (Γιατί αυτό έκανες ουσιαστικά). Αν δοκίμασες και είχες πρόβλημα, ποιό ήταν αυτό? Υπάρχουν αρκετοί λόγοι που μπορεί να εμποδίσουν την επικοινωνία οι οποίοι δεν οφείλονται στην έλλειψη υποστήριξης για WCF:&lt;/div&gt;&lt;div&gt;Μπορεί να μην έχεις κάνει σωστά το configuration του WCF. Πολύ συνηθισμένο πρόβλημα, μην πω ότι είναι αδύνατο να πετύχεις σωστό config με την πρώτη!&lt;br&gt;&lt;ol&gt;&lt;li&gt;Είναι σημαντικό να έχεις σωστά τα security parameters. &lt;a href="http://stackoverflow.com/a/2945417/134204"&gt;Αυτή η απάντηση στο SO&lt;/a&gt; περιγράφει το σωστό συνδυασμό&lt;/li&gt;&lt;li&gt;Μπορεί το web service να απαιτεί το ws:PasswordDigest προφίλ ενώ το WCF υποστηρίζει μόνο ws:PasswordText. Ο λόγος είναι ότι το digest δεν παρέχει σημαντικά καλύτερη ασφάλεια ενώ υπάρχουν άλλες τεχνικές για πολύ ισχυρότερη ασφάλεια.&lt;br&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa738565.aspx"&gt;Εδώ &lt;/a&gt;περιγράφεται ακριβώς τί υποστηρίζεται και γιατί δεν υποστηρίζεται το digest.&lt;br&gt;&lt;a href="http://blogs.msdn.com/b/aszego/archive/2010/06/24/usernametoken-profile-vs-wcf.aspx"&gt;Αυτό το άρθρο&lt;/a&gt; περιγράφει πως να προσθέσεις εσύ υποστήριξη για το digest.&lt;/li&gt;&lt;li&gt;Το WCF αρνείται να στείλει WS-Security headers με απλό http://. Ουσιαστικά οφείλεται στο #2&lt;br&gt;ΑΝ δημιουργήσεις ένα custom binding, μπορείς να χρησιμοποιήσεις το &lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.channels.securitybindingelement.allowinsecuretransport.aspx"&gt;AllowInsecureTransport &lt;/a&gt;attribute για να επιτρέψεις την επικοινωνία με http.&lt;/li&gt;&lt;li&gt;Μπορεί το web service να ΜΗΝ υποστηρίζει WS-Security, κι ας σου λένε ότι το κάνει. Δες για παράδειγμα &lt;a href="http://www.hanselman.com/blog/BreakingAllTheRulesWithWCF.aspx"&gt;τί έπαθε ο Scott Hanselman&lt;/a&gt;&amp;nbsp;όταν του δώσανε ένα web service που χρησιμοποιούσε "περίπου" WS-Security.&lt;br&gt;Δεν νομίζω να φταίει αυτό, αλλά που ξέρεις&lt;/li&gt;&lt;/ol&gt;Το WCF έχει δοκιμαστεί για interoperability με άλλες πλατφόρμες που υλοποιούν WS-Security. Δες πχ. το &lt;a href="http://msdn.microsoft.com/en-us/netframework/ff521748"&gt;interoperability matrix&lt;/a&gt; για το .NET 4 WCF. Το WCF επικοινωνεί με WS-Security με WebLogic, Websphere, Netweaver.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Το service που καλείς απαιτεί ντε και καλά το digest (ουσιαστικά θέλει το nonce) ? Μήπως δουλέψει αν το καλέσεις απλά με WCF και basicHttpBinding όπως στο #1?&lt;/div&gt;</description></item><item><title>Web Service απαιτεί WS-Security header. Το Username και Password tags είναι άδεια. (WSE 3.0)</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/70136.aspx</link><pubDate>Thu, 26 Apr 2012 16:19:28 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:70136</guid><dc:creator>Τάσκος Γιώργος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/70136.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=21&amp;PostID=70136</wfw:commentRss><description>Καλησπέρα,&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Εδώ και δύο εβδομάδες έχω ταλαιπωρηθεί προσπαθώντας να καλέσω ένα Web Service, όπου δεν ελέγχω και δεν είναι .NET.&lt;/div&gt;&lt;div&gt;Το Service απαιτεί να υπάρχει WS-Security authentication soap headers.&lt;/div&gt;&lt;div&gt;Έχω ένα παράδειγμα το πως πρέπει να μοιάζει το request message, κι έχω καταφέρει με την βοήθεια του WSE 3.0 και με δύο τρεις αλλαγές&lt;/div&gt;&lt;div&gt;να προσθέσω το add-in μέσα στο VS 2010.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Ξεκινώντας να δώσω λίγο ιστορικό.&lt;/div&gt;&lt;div&gt;Από την πρώτη στιγμή πήγα με την μέθοδο του Add Service Reference δημιουργώντας την Proxy κλάση derived από SoapHttpClientProtocol.&lt;/div&gt;&lt;div&gt;Αυτό είχε τεράστιες δυσκολίες να διαχειριστώ το soap header και για να κάνω append τα WS-Security tags έπρεπε να δημιουργήσω web service extensions.&lt;/div&gt;&lt;div&gt;Αυτό το πέτυχα μέχρι το σημείο που έπρεπε να βρω και τρόπο να κάνω generate το &amp;lt;Nonce&amp;gt;, &amp;lt;Timestamo&amp;gt; etc. Αν μπορεί κάποιος να βοηθήσει και σε αυτό καλοδεχούμενο.&lt;/div&gt;&lt;div&gt;Ψάχνοντας για αυτό έπεσα πάνω στο WSE 3.0 το οποίο ομολογώ δεν είχα ξαναχρησιμοποιήσει, είδα ότι δεν υποστηριζόταν άλλο ποια μετά από το Visual Studio 2005!!!&lt;/div&gt;&lt;div&gt;Τελικώς το έκανα εγκατάσταση και το έβαλα μέσα στο VS 2010, έφτιαξα μια class library .NET 2.0. Και αυτό με Update Web Reference μου δημιούργησε δύο proxy classes&lt;/div&gt;&lt;div&gt;όπου η μία έκανε derive από την WebServiceClientProtocol και είχες τα πάντα για να φτιάξεις εύκολα το soap header.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Κι εκεί που θα έπαιζαν όλα εύκολα, και το message γίνεται ακριβώς όπως μου το ζητάνε, παρατηρώ με το υπέροχο σωτήριο Fiddler (που αν και https μπόρεσε να με βοηθήσει),&lt;/div&gt;&lt;div&gt;ότι ενώ έχω δώσει το Username, Password για το soap header UsernameSecurityToken, δεν έχει βάλει τις τιμές, έτσι παίρνω fault message Invalid Security.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Παρακάτω το soap header από το Fiddler:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;?xml version=&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"1.0"&lt;/span&gt; encoding=&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"utf-8"&lt;/span&gt;?&amp;gt;
	&amp;lt;soap:Envelope xmlns:soap=&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"http://schemas.xmlsoap.org/soap/envelope/"&lt;/span&gt; 
		xmlns:soapenc=&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"http://schemas.xmlsoap.org/soap/encoding/"&lt;/span&gt; 
		xmlns:tns=&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"http://tempuri.org/"&lt;/span&gt; 
		xmlns:types=&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"http://tempuri.org/encodedTypes"&lt;/span&gt; 
		xmlns:xsi=&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"http://www.w3.org/2001/XMLSchema-instance"&lt;/span&gt; 
		xmlns:xsd=&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"http://www.w3.org/2001/XMLSchema"&lt;/span&gt;&amp;gt;
			&amp;lt;soap:Header&amp;gt;
				&amp;lt;wsse:Security xmlns:wsse=&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"&lt;/span&gt; soap:mustUnderstand=&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"1"&lt;/span&gt;&amp;gt;
					&amp;lt;wsse:UsernameToken xmlns:wsu=&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"&lt;/span&gt; wsu:Id=&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"unt_PQxtsT0a8iV1KN2Y"&lt;/span&gt;&amp;gt;
						&amp;lt;wsse:Username&amp;gt;&amp;lt;/wsse:Username&amp;gt;
						&amp;lt;wsse:Password Type=&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"&lt;/span&gt;&amp;gt;&amp;lt;/wsse:Password&amp;gt;
						&amp;lt;wsse:Nonce EncodingType=&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"&lt;/span&gt;&amp;gt;i03CXze0uiIYG8+q8MhEMYHiMcL/NOpCwvEVpQ5xo+M=&amp;lt;/wsse:Nonce&amp;gt;
						&amp;lt;wsu:Created&amp;gt;2012-04-25T22:59:23Z&amp;lt;/wsu:Created&amp;gt;
					&amp;lt;/wsse:UsernameToken&amp;gt;
					&amp;lt;wsu:Timestamp xmlns:wsu=&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"&lt;/span&gt;&amp;gt;
						&amp;lt;wsu:Created&amp;gt;2012-04-25T22:59:23Z&amp;lt;/wsu:Created&amp;gt;
						&amp;lt;wsu:Expires&amp;gt;2012-04-25T22:60:23Z&amp;lt;/wsu:Expires&amp;gt;
					&amp;lt;/wsu:Timestamp&amp;gt;
				&amp;lt;/wsse:Security&amp;gt;
			&amp;lt;/soap:Header&amp;gt;&lt;/span&gt;&lt;/pre&gt;Βλέπετε το πρόβλημα.&amp;nbsp;Κατά&amp;nbsp;τα άλλα όλα είναι υπέροχα με 3-3 γραμμές κώδικα.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;font face="'Courier New'"&gt;&lt;pre style="font-size:11px;"&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;MessageServiceWse client &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; MessageServiceWse();

UsernameToken usernameToken &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; UsernameToken(token.Username, token.Password, PasswordOption.SendPlainText);

client.RequestSoapContext.Security.Tokens.Add(usernameToken);
client.RequestSoapContext.Security.Timestamp.TtlInSeconds &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; 60;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="font-size:11px;"&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="color:black;background-color:transparent;font-family:'Courier New';font-weight:normal;"&gt;&lt;font size="2"&gt;Ακόμη δοκίμασα με policies, προσπάθησα με config file του WSE, SendSecurityFilter, custom classes. Το αποτέλεσμα είναι πάντα ίδιο.&lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color:black;background-color:transparent;font-family:'Courier New';font-weight:normal;"&gt;&lt;font size="2"&gt;Αφαιρώντας τον κώδικα ποιο πάνω, και πάλι μου κάνει generate το soap message με τα Security headers, πολύ περίεργο έτσι?&lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color:black;background-color:transparent;font-family:'Courier New';font-weight:normal;"&gt;&lt;font size="2"&gt;&lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;background-color:transparent;font-family:'Courier New';font-weight:normal;"&gt;&lt;font size="2"&gt;Τέλος σκέφτηκα αν υπάρχει για τέτοιες δουλειές κάποιο 3rd party component. Όποιος γνωρίζει ας μου πει.&lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color:black;background-color:transparent;font-family:'Courier New';font-weight:normal;"&gt;&lt;font size="2"&gt;&lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;background-color:transparent;font-family:'Courier New';font-weight:normal;"&gt;&lt;font size="2"&gt;Νομίζω πως αυτές είναι standard διαδικασίες και θα έπρεπε να παίζουν ποιο εύκολα. Αλλά αν δεν κάνω σωστά κάτι ας μας βοηθήσει το dotNETZone.&lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color:black;background-color:transparent;font-family:'Courier New';font-weight:normal;"&gt;&lt;font size="2"&gt;&lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;background-color:transparent;font-family:'Courier New';font-weight:normal;"&gt;&lt;font size="2"&gt;Αμήν.&lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="'Courier New'" size="2"&gt;&lt;br&gt;&lt;/font&gt;&lt;span style="color:black;background-color:transparent;font-family:'Courier New';font-weight:normal;"&gt;&lt;font size="2"&gt;Ευχαριστώ πολύ.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style="font-size:11px;"&gt;&lt;font face="'Courier New'"&gt;&lt;br&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;</description></item></channel></rss>