में भूमिका के आधार पर ऑथ कुकी टाइमआउट लंबाई सेट करना मैं सामान्य उपयोगकर्ताओं की तुलना में व्यवस्थापक को लॉग इन करने की अनुमति देना चाहता हूं। मुझे कुकी टाइमआउट को प्रोग्रामेटिक रूप से या भूमिका-आधारित तरीके से सेट करने के लिए एक हुक नहीं दिखता है। क्या फॉर्म प्रमाणीकरण का उपयोग कर एएसपी में यह संभव है?ASP.NET
ASP.NET
उत्तर
हाँ, आप ऐसा कर सकते हैं। फ्रेमवर्क को स्वचालित रूप से उत्पन्न करने के बजाय आपको मैन्युअल रूप से प्रमाणीकरण टिकट जेनरेट करना होगा।
उपयोगकर्ता भूमिका के आधार पर, आप टिकट के लिए आवंटन की समाप्ति।
स्निपेट:
switch Role:
Case A: VARIABLE X = Y; BREAK;
CASE B: VARIABLE X = Y2; BREAK;
..
End switch
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1, // Ticket version
Username.Value, // Username associated with ticket
DateTime.Now, // Date/time issued
DateTime.Now.AddMinutes(VARIABLE X), // Date/time to expire
true, // "true" for a persistent user cookie
reader.GetString(0), // User-data, in this case the roles
FormsAuthentication.FormsCookiePath);// Path cookie valid for
// Encrypt the cookie using the machine key for secure transport
string hash = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(
FormsAuthentication.FormsCookieName, // Name of auth cookie
hash); // Hashed ticket
// Set the cookie's expiration time to the tickets expiration time
if (ticket.IsPersistent) cookie.Expires = ticket.Expiration;
Response.Cookies.Add(cookie);
बहुत स्पष्ट और सहायक! धन्यवाद! यदि मैं केवल फॉर्म नाम प्रमाणीकरण टिकट अधिभार प्राप्त करता हूं, केवल स्ट्रिंग उपयोगकर्ता नाम, बूल IsPersitent और int टाइमआउट प्राप्त करता हूं, तो क्या मैं एन्क्रिप्टिंग और कुकी को असाइन कर दूंगा? –
मैं यहां से समझता हूं: टिप्पणी में https://msdn.microsoft.com/en-us/library/w04e17xz(v=vs.100).aspx, कि FormsCookiePath स्वचालित रूप से सेट हो गया है और इसलिए एन्क्रिप्टिंग इत्यादि होगा वही किया –
धन्यवाद! बिल्कुल सही लिंक – Wyatt