6

मुझे पूर्व-निर्मित लॉगिन और पंजीकरण प्रकार कार्यक्षमता के साथ UserManager और SignInManager ऑब्जेक्ट्स और खाता नियंत्रक के साथ एक मानक एमवीसी प्रोजेक्ट मिला है।उपयोगकर्ता.इडेन्टिटी। पासवर्डसाइनइनएसिंक के बाद हमेशा गलत प्रमाणित

मैं अपने AspNetUsers मेज पर नए उपयोगकर्ताओं को पंजीकृत कर सकते हैं, लेकिन जब मैं के लिए लॉग इन मैं फोन: -

var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false); 

डेटा सही ढंग से फार्म से के माध्यम से आ रहा है, और परिणाम सफलता है, जो मैं उम्मीद है।

मैं तो कोशिश की निम्नलिखित पुनः निर्देश: -

case SignInStatus.Success: 
    //return RedirectToLocal("/admin/"); 
    return RedirectToAction("Index", "Admin"); 

लेकिन किसी भी पृष्ठ पर, इस सफल प्रवेश के बाद, User.Identity.IsAuthenticated हमेशा गलत है, और User.Identity.Name कोई रिक्त स्ट्रिंग है।

मैं क्या गलत कर रहा हूं? मैंने अतीत में एक ही सेटअप के साथ उसी तरह एक और प्रोजेक्ट किया है और मुझे शून्य समस्याएं हैं।

web.config

<system.web> 
    <compilation debug="true" targetFramework="4.5.1" /> 
    <httpRuntime targetFramework="4.5.1" /> 
    <!--<authentication mode="Forms"> 
     <forms loginUrl="~/Account/Login/" timeout="1000" /> 
    </authentication>--> 
    <authentication mode="None" /> 
</system.web> 
<modules> 
    <remove name="FormsAuthentication" /> 
</modules> 

किसी को भी मैं गलत क्या कर रहा हूँ का सुझाव कर सकते हैं? यह अब प्रमुख मुद्दों का कारण बन रहा है।

चीयर्स!

+0

क्या आपने स्टार्ट अप के दौरान 'कुकी प्रमाणीकरण विकल्प' कॉन्फ़िगर किया है? – Nkosi

+0

मैं यह कैसे कर सकता हूं? –

+0

आप किस एएसपीनेट का उपयोग कर रहे हैं? – Nkosi

उत्तर

3

यह देखने के लिए जांचें कि क्या आपके पास Startup.Auth.cs फ़ाइल है App_Start प्रोजेक्ट में फ़ोल्डर।

public partial class Startup { 
    public void ConfigureAuth(IAppBuilder app) {    
     // This uses cookie to store information for the signed in user 
     var authOptions = new CookieAuthenticationOptions { 
      AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,     
      LoginPath = new PathString("/Account/Login"), 
      LogoutPath = new PathString("/Account/Logout"), 
      ExpireTimeSpan = TimeSpan.FromDays(7), 
     }; 
     app.UseCookieAuthentication(authOptions); 
    } 
} 

और Startup वर्ग

public partial class Startup { 
    public void Configuration(IAppBuilder app) { 
     // Surface Identity provider 
     ConfigureAuth(app); 

     //..other start up code 
    } 
} 

asp.net और पहचान आप उपयोग कर रहे हैं संस्करण के आधार पर से कहा जाता है, तो आप इस

ASP.NET Identity AuthenticationManager vs. SignInManager and cookie expiration

+1

इसके लिए धन्यवाद, इसे बुकमार्क करेगा। हमारे पास प्रोजेक्ट में पहले से ही यह कोड था, लेकिन ऐसा लगता है कि यह सर्वर पर कुछ था जो क्लैश प्रमाणीकरण का कारण बनता था। –

0
पर एक नज़र रखना चाहिए

मेरे लिए यह web.config था, लाइनों के बाद टिप्पणी

<system.webServer> 
    <modules> 
     <!--<remove name="FormsAuthentication" /> 
     <remove name="ApplicationInsightsWebTracking" /> 
     <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" /> 
     --> 
    </modules> 
</system.webServer> 
संबंधित मुद्दे