मैं OAuth 2.0 प्राधिकरण सर्वर नमूना कोड निम्न http://www.asp.net/aspnet/overview/owin-and-katana/owin-oauth-20-authorization-serverनिष्क्रिय प्रमाणीकरण मोड में ओविन कुकी मिडलवेयर सेट को ट्रिगर करने का सही तरीका क्या है?
साथ ही डला पैकेज को देख रहे हैं Microsoft.aspnet.identity.samples पैकेज (स्थापित पैकेज Microsoft.aspnet.identity.samples -पूर्व)
और मैं अपने सिर को निष्क्रिय बनाम सक्रिय कुकी मिडलवेयर कैसे काम करता है, इस बारे में अपने सिर को प्राप्त करने की कोशिश कर रहा हूं।
प्राधिकरण सर्वर उदाहरण में, "एप्लिकेशन" कुकी निष्क्रिय पर सेट है। पहचान नमूने में, "एप्लिकेशनक्यूकी" सक्रिय है।
जब मैं इस संपत्ति के बारे में पढ़ता हूं, तो यह बताता है कि मिलान करने वाले प्रमाणीकरण टाइप द्वारा अनुरोध किए जाने पर निष्क्रिय मिडलवेयर केवल तभी ट्रिगर होता है।
अगर मैं Microsoft.aspnet.identity.samples में startup.auth.cs फ़ाइल को संपादित और निष्क्रिय करने के लिए आवेदन कुकी सेट है, तो में प्रवेश करें, यह मान्य करने के लिए लगता है, लेकिन मुझे में प्रवेश नहीं करता है।
कोड में गहरी खुदाई, मुझे लगता है कि खाते नियंत्रक SignInHelper.SignInAsync
इस विधि के लिए एक कॉल करने के लिए नीचे फोड़ा उपयोगकर्ता जो करने के लिए एक फोन है से एक claimsidentity हो जाता है: (, उपयोगकर्ता DefaultAuthenticationTypes.ApplicationCookie) CreateIdentityAsync
मैं स्पष्ट रूप से कुछ समझ नहीं रहा हूं, क्योंकि जो मैंने पढ़ा और बता सकता हूं, वें ई कुकी के पास दावा के समान प्रमाणीकरण टाइप है, लेकिन जब प्रमाणीकरण। साइनइन कहा जाता है, तो कुकी सेट नहीं लगती है और मुझे पंजीकरण और लॉगिन करने के विकल्पों के साथ मुख्य पृष्ठ पर वापस कर दिया जाता है।
मुद्दा नकल करने के लिए, एक नई परियोजना खाली asp.net अनुप्रयोग शुरू करते हैं, तो पहचान नमूना पैकेज स्थापित है, तो करने के लिए startup.auth.cs के app.useCookieAuthentication बदलने के लिए:
app.UseCookieAuthentication(new CookieAuthenticationOptions {
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Passive,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider {
// Enables the application to validate the security stamp when the user logs in.
// This is a security feature which is used when you change a password or add an external login to your account.
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});
मैं बदल रहा है की कोशिश की है startup.auth.cs में कुकी नाम और उस कोड में "कस्टम" नाम जोड़ना जो दावा का लाभ उठाने के लिए उत्पन्न करता है।
मैं शोध रखने जा रहा हूं, लेकिन सोचा कि मैं इस बीच समुदाय तक पहुंच जाऊंगा।
हाय विलियम, इस के लिए धन्यवाद। मैंने ब्रॉक एलन के ब्लॉग और पोस्ट के माध्यम से कुछ बार पढ़ा है और अनिवार्य रूप से इस कथन को समझने की कोशिश कर रहा हूं: "दूसरी तरफ निष्क्रिय मिडलवेयर केवल अनुरोध के लिए अनुरोध का निरीक्षण करता है।" ऐसा लगता है कि प्रमाणीकरण टाइप, आईई को इंगित करने के लिए यह पूछने का तरीका है: जब आप कोई दावा करते हैं तो आप इसे प्रमाणीकरण टाइप कर सकते हैं। हालांकि जब मैं ऐसा करता हूं, तो मेरा सभी प्रमाणीकरण कोड सफल होता है, लेकिन कुकी सेट नहीं होती है। मैं यह समझने की कोशिश कर रहा हूं कि मुझे मैन्युअल रूप से क्या करना है कि सक्रिय मिडलवेयर स्वचालित रूप से करता है। – Steve
उपरोक्त में जोड़ने के लिए, मुझे पता है कि जब मैं अपनी पोस्ट में कोड में लाइन बदलता हूं प्रमाणीकरण मोड = माइक्रोसॉफ्ट.ऑविन। सुरक्षा। प्रमाणीकरण मोड। प्रमाणीकरण मोड = माइक्रोसॉफ्ट.ऑविन। सुरक्षा। प्रमाणीकरण मोड। सक्रिय सबकुछ एक ही तरीके से काम करता है सक्रिय के साथ कुकी प्रमाणीकरण के बाद सेट है और मैं लॉग इन हूं। निष्क्रिय सब कुछ काम करता है लेकिन कुकी सेट नहीं है। मैं यह निर्धारित करने की कोशिश कर रहा हूं कि सक्रिय डेवलपर की तरह कुकी पीढ़ी को ट्रिगर करने के लिए डेवलपर को क्या करना है। – Steve
दावा दावों के साथ साइनइन कॉल करना कुकी पीढ़ी को ट्रिगर करता है, सक्रिय/निष्क्रिय मोड कुकी पीढ़ी को प्रभावित नहीं करना चाहिए, मुझे लगता है कि मुझे –