2013-02-12 18 views
7

सदस्यता पर झूठी वापसी करता है। ValidateUser विधियां विकास सर्वर दोनों (iis एक्सप्रेस और कैसिनी) पर काम करती हैं। लेकिन मेरे आईआईएस (इसकी विकास मशीन पर एक आवेदन के रूप में प्रकाशित) पर यह हमेशा झूठी लौटाता है।सदस्यता। ValidateUser हमेशा आईआईएस

यहां तक ​​कि उपयोगकर्ता को भी स्वीकृत किया गया है, लॉक नहीं किया गया है और उपयोगकर्ता नाम और पासवर्ड सही हैं। कोई निशान त्रुटि नहीं है। ?

http अनुरोध 1: davutg-पीसी:/BpmService/लॉगिन उपयोगकर्ता नाम = एबीसी & पासवर्ड = 0035

परिणाम 1: < बूलियन>सच </बूलियन>

http अनुरोध 2: davutg-pc/BPM/BpmService/लॉगिन? UserName = abc & पासवर्ड = 0035

परिणाम 2: < बूलियन>झूठी </बूलियन>

यहाँ

<roleManager enabled="true" defaultProvider="MySQLRoleProvider"/> 

<machineKey validationKey="E8B40EEA5A8EFC6F...key" decryptionKey="385..." validation="SHA1" /> 

<membership defaultProvider="MySQLMembershipProvider" hashAlgorithmType="SHA1"> 
    <providers> 
    <remove name="MySQLMembershipProvider" /> 
    <add type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.5.5.0, Culture=neutral, 
     PublicKeyToken=c5687fc88969c44d" 
     name="MySQLMembershipProvider" 
     connectionStringName="LocalMySqlServer" 
     minRequiredPasswordLength="3" 
     minRequiredNonalphanumericCharacters="0" 
     requiresUniqueEmail="false" 
     requiresQuestionAndAnswer="false" 
     passwordFormat="Encrypted"/> 

मैं तुलना में machine.configs ही फ्रेमवर्क 64 और फ्रेमवर्क हैं अपनी सेटिंग्स हैं ।

यह विकास सर्वर पर काम करता है लेकिन आईआईएस पर हमेशा झूठी वापसी होती है। मैं आईआईएस के साथ विभिन्न सेवाओं क्वेरी कर सकता हूं और ऐसी कोई समस्या नहीं है।

अलावा: जब मैं गलत पासवर्ड "FailedPasswordAttemptCount" दर्ज विकास सर्वर के लिए वृद्धि हुई है। लेकिन यह आईआईएस के लिए नहीं बदलता है। आईआईएस के साथ क्या गलत हो रहा है। मैं सिर्फ सदस्यता कॉल करता हूं। वैलिडेट यूज़र (उपयोगकर्ता, पास)

किसी भी सुझाव की सराहना की जाएगी!

उत्तर

7

हल हो गया! उम्मीद है कि यह किसी के समय बचाएगा।

समस्या एप्लिकेशन का नाम था।

host: port/सेवा

मेजबान/बीपीएम/सेवा

ध्यान दें: बीपीएम applicaton नाम आप आईआईएस पर दे रहा है।

सदस्यता एन्क्रिप्शन एल्गोरिदम "लागूatName" का उपयोग करता है। जब मैं आवेदक सेटअप करता हूं तो मैंने बीपीएम का इस्तेमाल एप्लिकेशन नाम के रूप में किया था। विकास सर्वर पर "नाम" वापसी "/"। लेकिन आईआईएस पर इसका "बीपीएम"!

मेरे सभी पुराने पासवर्ड "/" appliacion नाम से उत्पन्न हुए थे। तो हमेशा एक आवेदन नाम प्रदान करें। स्कॉट-गु के ब्लॉग से यह article पढ़ें।

public bool Login(string userName,string password) 
    { 
     var provider = Membership.Provider; 
     string name = provider.ApplicationName; 

     return Membership.ValidateUser(userName, password); 
    } 

// गलत एक

 <membership> 
     <providers> 
      <clear/> 
      <add name="AspNetSqlMembershipProvider" 
       type="System...bla bla" 
       connectionStringName="LocalSqlServer" 
       enablePasswordRetrieval="false" 
       enablePasswordReset="true" 
       requiresQuestionAndAnswer="true" 
       requiresUniqueEmail="false" 
       passwordFormat="Hashed" 
       maxInvalidPasswordAttempts="5" 
       minRequiredPasswordLength="7" 
       minRequiredNonalphanumericCharacters="1" 
       passwordAttemptWindow="10" 
       passwordStrengthRegularExpression="" 
       applicationName="/" //Wrong 
      /> 
     </providers> 
    </membership> 

// सही एक

  <membership> 
       <providers> 
       <clear/> 
      <add name="AspNetSqlMembershipProvider" 
       type="System.Web.Security.S.. bla bla" 
       connectionStringName="LocalSqlServer" 
       enablePasswordRetrieval="false" 
       enablePasswordReset="true" 
       requiresQuestionAndAnswer="true" 
       requiresUniqueEmail="false" 
       passwordFormat="Hashed" 
       maxInvalidPasswordAttempts="5" 
       minRequiredPasswordLength="7" 
       minRequiredNonalphanumericCharacters="1" 
       passwordAttemptWindow="10" 
       passwordStrengthRegularExpression="" 
       applicationName="MyAPPNAME" //Well :) 
      /> 
     </providers> 
    </membership> 
संबंधित मुद्दे