2015-06-03 14 views
7

में प्रमाणीकृत फ़ंक्शन Asp.Net 5 में कहीं भी Request.IsAuthenticated के बराबर है या क्या हम उपयोगकर्ता की पहचान के माध्यम से लूप होने की उम्मीद कर रहे हैं और इसे स्वयं निर्धारित करते हैं?अनुरोध। Asp.Net 5

उत्तर

19

तुम सिर्फ यह जानना चाहते हैं उपयोगकर्ता वस्तु प्रमाणित है की जरूरत है, इस संपत्ति चाल करना चाहिए:

User.Identity.IsAuthenticated 

आप एक अप्रमाणित उपयोगकर्ता द्वारा बुलाया जा रहा से एक कार्रवाई को रोकने के लिए की जरूरत है, निम्न विशेषता वर्ग बहुत अच्छा काम करता है।

public class BasicAuthAttribute : ActionFilterAttribute, IAuthenticationFilter 
{ 
    public void OnAuthentication(AuthenticationContext filterContext) 
    { 
    } 

    public void OnAuthenticationChallenge(AuthenticationChallengeContext filterContext) 
    { 
     var user = filterContext.HttpContext.User; 
     if (user == null || !user.Identity.IsAuthenticated) 
     { 
      filterContext.Result = new HttpUnauthorizedResult(); 
     } 
    } 
} 

मैं इसे अपने बेस नियंत्रक वर्ग में निम्नानुसार उपयोग करता हूं।

[BasicAuth] 
public abstract class BaseAuthorizedController : Controller 
+0

वहाँ एक [अधिकृत] ढांचे में विशेषता पहले से ही है और आप की तरह एक आधार नियंत्रक का उपयोग किए बिना एक वैश्विक रूप में विशेषता जोड़ सकते हैं:। Opt.Filters.Add (नई AuthorizeFilter (नई AuthorizationPolicyBuilder() RequireAuthenticatedUser()। निर्माण())); एक [AllowAnonymous] विशेषता भी है ताकि आप इसे अपने लॉगिन पेज में उदाहरण के लिए प्राप्त कर सकें। –

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