Nasıl OwinStartup zaman Dİ konteyner kullanmak için
Web API 2 bir proje.
Ben Dİ Ninject kullanarak uygulamak, bir hata iletisi aldım
Bir hata türü bir denetleyicisi oluşturmak için çalışıyorum oluştu ''. TokenController Denetleyici parametresiz bir genel oluşturucuya sahip olduğundan emin olun.
[assembly: OwinStartup(typeof(Web.Startup))]
namespace Web
{
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
ConfigureWebApi(app);
}
}
}
public class TokenController : ApiController
{
private IUserService _userService;
public TokenController(IUserService userService)
{
this._userService = userService;
}
[Route("api/Token")]
public HttpResponseMessage PostToken(UserViewModel model)
{
if (_userService.ValidateUser(model.Account, model.Password))
{
ClaimsIdentity identity = new ClaimsIdentity(Startup.OAuthBearerOptions.AuthenticationType);
identity.AddClaim(new Claim(ClaimTypes.Name, model.Account));
AuthenticationTicket ticket = new AuthenticationTicket(identity, new AuthenticationProperties());
var currentUtc = new SystemClock().UtcNow;
ticket.Properties.IssuedUtc = currentUtc;
ticket.Properties.ExpiresUtc = currentUtc.Add(TimeSpan.FromMinutes(30));
return new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new ObjectContent<object>(new
{
UserName = model.Account,
AccessToken = Startup.OAuthBearerOptions.AccessTokenFormat.Protect(ticket)
}, Configuration.Formatters.JsonFormatter)
};
}
return new HttpResponseMessage(HttpStatusCode.BadRequest);
}
}
<add key="owin:AutomaticAppStartup" value="false" />
web eklediğimde.config
Ninject iyi çalışıyor amaBaşlangıç.OAuthBearerOptions.AccessTokenFormatnull olur
Nasıl OWİN ile Dİ konteyner kullanmak için?
GÜNCELLEME
İDependencyResolver uygulamak ve WebAPİ Bağımlılık Çözümleyici olarak kullanınız
public void ConfigureWebApi(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
config.DependencyResolver = new NinjectDependencyResolver(NinjectWebCommon.CreateKernel());
app.UseWebApi(config);
}
Basit bir Enjektör durumda
public void ConfigureWebApi(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
var container = new Container();
container.Register<IUserService, UserService>();
config.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container);
app.UseWebApi(config);
}
CEVAP
this blog post bakmak isteyebilirsiniz.
Birlik kullanıyor ama sonunda aynı olması gerekir.
Temelde, WebAPİ Bağımlılık Çözümleyici kullanın. Her şeyi doğru eşleştirilir ve iyi olmalıdır emin olun.
Eğer Dİ senin kurduktan sonra hala OAuth token ile sorun varsa, bana bildirin.
Şerefe
Açısal JS: Nasıl ng-click bir yol aram...
nasıl bir zaman dilimi kullanarak bir ...
Nasıl Holo kullanmak için.Işık tema ve...
Nasıl ve ne zaman Ember kullanmak için...
Nasıl kat-sol kullanmak için zaman ve ...