को व्यक्तिगत उपयोगकर्ता खातों मैं माइक्रोसॉफ्ट खातों के साथ कार्य बाहरी प्रमाणीकरण पाने में कामयाब रहे है का उपयोग कर ASP.NET 5 वेब एप्लिकेशन खाका के साथ शुरू। उन लॉग इन पर क्लिक करते हैं कि वे इसपुनर्निर्देशन लॉग इन नियंत्रक कार्रवाई
<form asp-controller="Account" asp-action="ExternalLogin" method="post" asp-route-returnurl="@ViewData["ReturnUrl"]" class="nav navbar-right">
<button type="submit" class="btn btn-null nav navbar-nav navbar-right" name="provider" value="Microsoft" title="Log in"><span class="fa fa-sign-in"/> Log In</button>
</form>
उन्हें उनके माइक्रोसॉफ्ट खाते का उपयोग में लॉग इन किया है और सभी अच्छी तरह से काम करने के लिए लगता है हो जाता है यही कारण है कि जैसे AccountController
में ExternalLogin
पर पुनः निर्देशित कर रहे हैं। लेकिन यह कैसे मैं इतना है कि उपयोगकर्ता ExternalLogin
पर भेज दिया जाएगा विशेषाधिकार प्राप्त कार्यों [Authorize]
उपयोग करने के लिए प्रत्यक्ष कोशिश में भी खलल करते हैं? क्या Startup.cs
में डिफ़ॉल्ट कार्रवाई सेट की जा सकती है?
संपादित करें 1 @Yves की सलाह का पालन करने का प्रयास करते हुए मैंने फ़िल्टर फ़ोल्डर में CustomAutorizationFilter
बनाया है। यह किसी भी स्थिति
public class CustomAutorizationFilter : IAuthorizationFilter
{
public void OnAuthorization(Microsoft.AspNet.Mvc.Filters.AuthorizationContext context)
{
//if (...) // Check you conditions here
//{
context.Result = new RedirectToActionResult("ExternalLogin", "Account", null);
//}
}
}
जांच नहीं की जाती और
services.AddMvc(config =>
{
config.Filters.Add(typeof(Filters.CustomAutorizationFilter));
});
नीचे के रूप में ConfigureServices
संपादित किया है जब मैं अनुप्रयोग स्थानीय रूप से चलाने के यह अब होम पेज को जाता है। यह एक खाली http://localhost:52711/Account/ExternalLogin
रिटर्न जाहिर है बहुत मुझे समझ नहीं आता है।
संपादित करें 2: यहाँ ExternalLogin
// POST: /Account/ExternalLogin
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public IActionResult ExternalLogin(string provider, string returnUrl = null)
के हस्ताक्षर है यह कैसे ExternalLogin
ASP.Net 5 वेब एप्लिकेशन टेम्पलेट में बॉक्स से बाहर आता है।
मुझे लगता है कि आपके संपादन के बाद एक रीडायरेक्ट लूप हो सकता है। 'AllowAnonymousAttribute' को अपने' बाहरी लॉग इन 'नियंत्रक में जोड़ने का प्रयास करें। अगर मुझे गलत नहीं लगता है कि विशेषता 'IAuthorizationFilter' को बाईपास करती है। क्या हो रहा है यह देखने के लिए आप इसे डीबग कर सकते हैं। मैं एक पीसी एटीएम पर नहीं हूँ। तो मैं इसे देख नहीं सकता। – Yves
मैंने अपने प्रश्न में 'बाहरी लॉगिन' का हस्ताक्षर जोड़ा है। – Vague
@Yves रीडायरेक्ट लूप के बारे में सही है। यह 'context.Result = new RedirectToActionResult (" बाहरी लॉगिन "," खाता ", शून्य) के माध्यम से लूपिंग रखता है; 'बाहरी लॉगिन' – Vague