2014-10-15 11 views
26

साइनइनमैनेजर पासवर्ड साइनइन/साइनइन का उपयोग करने के विरोध में प्रमाणीकरण प्रबंधक साइनइन का उपयोग करने के बीच क्या अंतर है? मेरे पास SignInManager का उपयोग करके एक कार्यान्वयन है और मेरी कुकी की समाप्ति 30 दिनों तक सेट है, लेकिन ऐसा लगता है कि मेरा वेब ऐप 30 दिनों से पहले मेरी कुकीज़ को यादृच्छिक रूप से समाप्त कर देगा। SignInManager कार्यान्वयन का उपयोग इस का कारण होगा? क्या मुझे इसके बजाय प्रमाणीकरण प्रबंधक कार्यान्वयन का उपयोग करना चाहिए?एएसपी.नेट पहचान प्रमाणीकरण प्रबंधक बनाम साइनइन प्रबंधक और कुकी समाप्ति

बॉक्स उदाहरण कोड से बाहर इस तरह साइन इन दिखाता है, लेकिन मैंने अन्य उदाहरण भी देखे हैं जो प्रमाणीकरण प्रबंधक कार्यान्वयन का उपयोग करते हैं।

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

यहां मेरी स्टार्टअप कॉन्फ़िगरेशन है।

  app.UseCookieAuthentication(new CookieAuthenticationOptions 
     { 
      AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, 
      ExpireTimeSpan = TimeSpan.FromDays(30), 
      LoginPath = new PathString("/signin"), 
      Provider = new CookieAuthenticationProvider 
      { 
       OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<AppUserManager, AppUser>(
        validateInterval: TimeSpan.FromMinutes(30), 
        regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)) 
      } 
     }); 
     app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); 
     app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5)); 
     app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie); 

उत्तर

28

पहचान ढांचा संस्करण 2.1.0 के रिलीज से पहले, हम आदेश दो कारक प्रमाणीकरण के लिए परिणाम (SignInStatus) प्राप्त करने के लिए हमारे अपने कोड लिखने के लिए है, तालाबंदी खाता, EmailToBeConfirmed आदि SignInManager के साथ, इस है सरलीकृत किया गया है और हमें कोड की एक पंक्ति के साथ साइनइनस्टैटस मिलता है।

आप NuGet संकुल के बाद इस जांच को समझ सकते हैं और दो संस्करणों की तुलना कर सकते हैं।

संस्करण 2.0.0: Install-Package Microsoft.AspNet.Identity.Samples -Version 2.0.0-beta1 -Pre

संस्करण 2.1.0: Install-Package Microsoft.AspNet.Identity.Samples -Pre

AuthenticationManager.SignIn उपयोगकर्ता साइन-इन प्रक्रिया को पूरा करने के क्रम में SignInManager के पीछे का उपयोग कर तंत्र है, ताकि वहाँ नहीं AuthenticationManager.SignIn के बीच कोई अंतर है और SignInManager.PasswordSignIn/SignInPasswordSignIn/SignIn, SignInOrTwoFactor जैसे सभी प्रकार के प्रमाणीकरणों को प्रबंधित करने के लिए हम SignInManager को एक सहायक वर्ग के रूप में समझा सकते हैं।

इसलिए कुकीज की समाप्ति साइन-इन के लिए उपयोग की जाने वाली विधि पर निर्भर नहीं है क्योंकि सभी CookieAuthenticationOptions में कॉन्फ़िगर किए गए हैं।

+0

धन्यवाद, यह कहने के लिए अच्छा है, अब यह पता लगाने के लिए कि मेरी कुकीज़ समय-समय पर समाप्त क्यों हो रही है। –

संबंधित मुद्दे