मैं यूनिट को उस कोड के टुकड़े का परीक्षण करने की कोशिश कर रहा हूं जिसके लिए परीक्षण में वर्तमान में लॉग इन उपयोगकर्ता की आवश्यकता है। .NET 2.0 सदस्यता प्रदाता का उपयोग करके, मैं इस परीक्षण के लिए उपयोगकर्ता के रूप में प्रोग्रामेटिक रूप से लॉग इन कैसे कर सकता हूं?.net सदस्यता प्रदाता के साथ प्रोग्रामेटिक लॉगिन
उत्तर
क्या आपके कोड को वास्तव में ASP.NET के माध्यम से लॉग इन किए गए उपयोगकर्ता की आवश्यकता है, या क्या इसे केवल वर्तमान प्रिंसिपलर की आवश्यकता है? मुझे नहीं लगता कि आपको अपनी साइट पर प्रोग्रामेटिक रूप से लॉग इन करने की आवश्यकता है। आप GenericPrincipal बना सकते हैं, अपनी आवश्यक गुणों को सेट कर सकते हैं, और इसे संलग्न कर सकते हैं, उदाहरण के लिए थ्रेड। कंटेंट प्रिंसिपल या मॉक किए गए एचटीपी कॉन्टेक्स्ट। यदि आपके कोड को वास्तव में रोलप्रिंसिपल या कुछ चाहिए तो मैं कोड को एएसपी.NET सदस्यता के साथ कम करने के लिए बदल दूंगा।
अपने सदस्यता प्रदाता का उपयोग करके आप सदस्यता का उपयोग कर उपयोगकर्ता को सत्यापित कर सकते हैं। ValidateUser। फिर आप FormsAuthentication.SetAuthCookie का उपयोग कर प्रमाणीकरण कुकी सेट कर सकते हैं। जब तक आपके पास कुकी कंटेनर हो, तब तक आपको किसी उपयोगकर्ता में लॉग इन करने की अनुमति देनी चाहिए।
मुझे एक डिस्पोजेबल क्लास बनाने के लिए सबसे सुविधाजनक पाया गया है जो Thread.CurrentPrincipal को सेटिंग और रीसेट करने में संभालता है।
public class TemporaryPrincipal : IDisposable {
private readonly IPrincipal _cache;
public TemporaryPrincipal(IPrincipal tempPrincipal) {
_cache = Thread.CurrentPrincipal;
Thread.CurrentPrincipal = tempPrincipal;
}
public void Dispose() {
Thread.CurrentPrincipal = _cache;
}
}
परीक्षा पद्धति में आप सिर्फ इस तरह एक का उपयोग कर बयान के साथ अपने कॉल लपेट:
using (new TemporaryPrincipal(new AnonymousUserPrincipal())) {
ClassUnderTest.MethodUnderTest();
}
if(Membership.ValidateUser("user1",[email protected]))
{
FormsAuthentication.SetAuthCookie("user1",true);
}
- 1. एएसपी.नेट सदस्यता प्रदाता - एकल लॉगिन
- 2. लॉगिन नियंत्रण और कस्टम सदस्यता प्रदाता
- 3. फेसबुक लॉगिन के साथ एएसपीनेट 4.0 सदस्यता
- 4. .NET 4.5 यूनिवर्सल सदस्यता प्रदाता तालिका नाम
- 5. सदस्यता प्रदाता
- 6. समग्र सी 1 - सदस्यता प्रदाता - सरल पंजीकरण और लॉगिन
- 7. एएसपी.NET सदस्यता/भूमिका प्रदाता?
- 8. क्या एएसपी.NET सदस्यता प्रदाता
- 9. पुष्टिकरण ईमेल के साथ एएसपी.NET सदस्यता प्रदाता
- 10. एएसपी.Net सदस्यता लॉगिन समस्या
- 11. एएसपी.NET कस्टम सदस्यता प्रदाता
- 12. एएसपी.नेट एमवीसी 2 - सदस्यता प्रदाता - ValidateUser() - वापसी लॉगिन त्रुटि संदेश
- 13. मैं एएसपी.NET सदस्यता प्रदाता के साथ खाता कैसे अक्षम करूं?
- 14. Asp.net सदस्यता प्रदाता
- 15. कस्टम एएसपीनेट सदस्यता प्रदाता
- 16. कस्टम सदस्यता/भूमिका प्रदाता
- 17. .NET कस्टम सदस्यता बनाम। कस्टम लॉगिन/पंजीकरण: प्रमाणीकरण/प्रमाणीकरण
- 18. ओएथ एएसपी.NET सदस्यता प्रदाता
- 19. माइक्रोसॉफ्ट सदस्यता प्रदाता बनाम कस्टम प्रदाता वीएस पूर्ण कस्टम लॉगिन सिस्टम
- 20. .NET सदस्यता
- 21. ईएफ कोड के साथ सदस्यता प्रदाता का उपयोग कैसे करें?
- 22. सदस्यता के साथ निनजेक्ट का उपयोग करना। प्रदाता
- 23. एएसपीनेट सदस्यता और भूमिका प्रदाता
- 24. कस्टम सदस्यता प्रदाता का विस्तार
- 25. एएसपी.नेट सक्रिय निर्देशिका सदस्यता प्रदाता और एसक्यूएल प्रोफाइल प्रदाता
- 26. डब्ल्यूसीएफ, एएसपी.नेट सदस्यता प्रदाता और प्रमाणीकरण सेवा
- 27. MySQL के लिए एएसपी.NET सदस्यता/भूमिका प्रदाता?
- 28. किसी उपयोगकर्ता को एएसपी में लॉक करना .NET कस्टम सदस्यता प्रदाता
- 29. एएसपी.Net सदस्यता - इकाई फ्रेमवर्क में प्रदाता 4
- 30. क्या मैं एएसपी सदस्यता प्रदाता के साथ ओपनआईडी का उपयोग कर सकता हूं?
मैं Membership.GetUser करने के लिए कॉल की जरूरत है() उपयोगकर्ता में वापस जाने के लिए वर्तमान में लॉग। – ddc0660
सदस्यता के तहत कक्षा में सीधे सदस्यता प्राप्त करें। गेटयूसर()। निर्माण में IGetUser के साथ कक्षा की आपूर्ति करें, सदस्यता.GetUser() के स्थान पर इसका उपयोग करें, फिर परीक्षण के लिए IGetUser का नकली कार्यान्वयन करें। –