मैं अपनी निर्भरता इंजेक्शन स्थापित करने की कोशिश कर रहा हूं और मुझे IAuthenticationManager
एएसपी.NET पहचान से OwinContext
पर इंजेक्शन देने की आवश्यकता है।Global.asax से OwinContext कैसे प्राप्त करें?
इस मैं अपने Global.asax -> ServiceConfig.Configure()
चल रहा से हूँ के लिए:
container.Register(() => HttpContext.Current.GetOwinContext().Authentication);
लेकिन जब मैं अपने आवेदन चला रहा हूँ मैं यह संदेश प्राप्त:
नहीं owin.Environment आइटम संदर्भ में मिला था
यह HttpContext.Current.GetOwinContext() Global.asax से क्यों उपलब्ध नहीं है?
Startup.cs
[assembly: OwinStartupAttribute(typeof(MyApp.Web.Startup))]
namespace Speedop.Web
{
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
}
}
}
Startup.Auth.cs
public partial class Startup
{
public void ConfigureAuth(IAppBuilder app)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<UserManager<User, int>, User, int>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentityCallback: (manager, user) => manager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie),
getUserIdCallback: (id) => (Int32.Parse(id.GetUserId()))
)
}
});
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
}
}
पर मौजूद है [इस उत्तर] (http://stackoverflow.com/questions/20168978/do-i-need-a-global-asax-cs-file-at-all -यदि-आईएम का उपयोग-एक-Owin-स्टार्टअप-CS-वर्ग और)। मुख्य रूप से, Global.asax को Startup.cs – Jonesopolis
एचएम से पहले बुलाया जाता है, मेरे पास मेरी निर्देशिका में 'Microsoft.Owin.Host.SystemWeb.dll' है। कॉन्फ़िगरएथ (...) के बाद भी मैंने एक ही संदेश आने के बाद अपने ग्लोबल.एक्सएक्स से स्टार्टअप सीएस में सब कुछ ले जाने की कोशिश की। – janhartmann
मैंने अभी एक नया नमूना ऐप बनाने की कोशिश की और उसी परिणाम के साथ ओविनकॉन्टेक्स्ट प्राप्त करने का प्रयास किया। एक तरीका होना चाहिए :-) – janhartmann