2014-07-27 7 views
5

मैं इन पंक्तियों के आधार पर अपना WebAPI OAuth 2.0 कॉन्फ़िगर किया गया "अनुक्रम एक से अधिक तत्व शामिल":WebAPI OAuth UseOAuthBearerAuthentication देता त्रुटि

app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions 
    { 
     Provider = new OAuthBearerAuthenticationProvider(), 
    }); 

    app.UseOAuthBearerTokens(OAuthOptions); 

लेकिन यह मुझे प्रत्येक अनुरोध पर निम्न त्रुटि देता है:

Message : An error has occurred. 
ExceptionMessage : Sequence contains more than one element 
ExceptionType : System.InvalidOperationException 
StackTrace : at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source) 
    at Microsoft.Owin.Security.AuthenticationManager.d__8.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 
    at System.Web.Http.HostAuthenticationFilter.d__0.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at System.Web.Http.Controllers.AuthenticationFilterResult.d__0.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 
    at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext() 

मेरे OAuthOptions है:

OAuthOptions = new OAuthAuthorizationServerOptions 
    { 
     TokenEndpointPath = new PathString("/Token"), 
     Provider = new ApplicationOAuthProvider(PublicClientId, UserManagerFactory), 
     AuthorizeEndpointPath = new PathString("/Account/ExternalLogin"), 
     AccessTokenExpireTimeSpan = TimeSpan.FromDays(14), 
     AllowInsecureHttp = true, 
    }; 
} 

अगर मैं टिप्पणी UseOAuthBearer प्रमाणीकरण सबकुछ ठीक है! मैंने अभी तक OAuthBearerAuthenticationProvider को कस्टमाइज़ नहीं किया है और मैं इसे सीधे उपयोग करता हूं लेकिन यह मुझे त्रुटि क्यों देता है?

उत्तर

29

यह एक बग होना चाहिए! का प्रयोग करें

app.UseOAuthAuthorizationServer(OAuthOptions);

बजाय

app.UseOAuthBearerTokens(OAuthOptions);

+1

आप एक प्रकाश कृपाण –

+0

हाय, मैं एक ही मुद्दा हो रहा है। यह मेरे लिए काम कर रहा था लेकिन अब यह और काम नहीं करता है। मुझे कुछ धागे मिल गए जो 3.0.0 से 3.0.1 तक ओविन संस्करण अपडेट्रेज संभव कारण सुझाते हैं। हालांकि अगर मैंने 3.0.0 पंजीकृत किया है तो यह मेरे लिए काम नहीं करता है। उपरोक्त समाधान का प्रयास किया अभी भी यह काम नहीं करता है। क्या कोई यहां गाइड कर सकता है? –

+0

अपने प्रश्न को एक नए थ्रेड में पूछें। कोई भी आपका प्रश्न यहां नहीं देख सकता! –

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