2010-05-09 13 views
8

हम एएसपी.नेट एमवीसी का उपयोग कर समाधान पर एक क्रॉस-डोमेन सिंगल-साइन बनाने की कोशिश कर रहे हैं।एकल-साइन-ऑन एएसपी.नेट एमवीसी

कोई मौजूदा समाधान या ट्यूटोरियल उपलब्ध हैं?

+1

सर्वर एक दूसरे के लिए या एक ही डीबी को उस बात के लिए बात कर सकते हैं के डोमेन हिस्सा खो दिया है यदि ऐसा है तो समाधान बिल्कुल स्पष्ट है –

+0

हे -।। हाँ www.example.com - डीबी के साथ एक ही वेबसाइट है। डीबी सभी लॉग इन में आम है? इसलिए इसकी मूल रूप से केवल "रिमोट" वेबसाइट www.example.com आदि के साथ स्वामित्व होनी चाहिए। – Mike

उत्तर

10

आप वेब अनुप्रयोगों एक ही सर्वर और एक ही डोमेन पर कर रहे हैं तो तुम सब करने की जरूरत है बीमा है validationKey और एन्क्रिप्शन कुंजी वेब config (machineKey) में समान हैं।

अपने उदाहरण में यदि आप अन्य डोमेन में पुन: परिवहन के लिए उदाहरण के लिए, क्वेरी स्ट्रिंग के लिए प्रमाणीकरण टिकट संलग्न करने के लिए की आवश्यकता होगी: आप कुकी-रूपों प्रमाणीकरण सक्षम करने के लिए

public void Login(string userName, string password) 
{ 
    if(AuthenticateUser(userName,password)) 
    { 
     Response.Redirect(String.format("{0}?{1}={2}"), 
      Request.QueryString["ReturnUrl"], 
      FormsAuthentication.FormsCookieName, 
      FormsAuthentication.GetAuthCookie(userName, false).Value)); 
    } 
} 

स्थानीय आवेदन पर , और सक्षम उपयोगकर्ताओं को enableCrossAppRedirect सेट करके बाहरी अनुप्रयोगों से आने की अनुमति दें।

<authentication mode="Forms"> 
    <forms enableCrossAppRedirect="true" cookieless="useUri" /> 
</authentication> 

नोट्स:

  1. भी देखें FormsAuthentication.RedirectFromLoginPage - http://msdn.microsoft.com/en-us/library/ka5ffkce.aspx

  2. मेरे मामले में ReturnUrl यूआरएल :(

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