我在使用身份和城堡windsor的典型asp.net项目中的owin配置有问题。 的事情是我真的很喜欢怎样的身份和owin所管理的所有用户的东西像发送cookie来登录电子用户等,但它需要下面的代码:与owin和身份的城堡温莎
[assembly: OwinStartupAttribute(typeof(OwinStartUp.Startup))]
namespace OwinStartUp
{
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
app.CreatePerOwinContext(DbOwinHelper.CreateDbContext);
app.CreatePerOwinContext<ApplicationUserManager>(DbOwinHelper.CreateUserManager);
app.CreatePerOwinContext<ApplicationSignInManager>(DbOwinHelper.CreateSignInManager);
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, MyIdentityUser, Guid>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentityCallback: (manager, user) => user.GenerateUserIdentityAsync(manager),
getUserIdCallback: (user) => Guid.Parse(user.GetUserId()))
}
});
}
}
}
所以如控制器我必须这样写:
var signInManager = HttpContext.GetOwinContext().Get<ApplicationSignInManager>();
,而不是这个(我preffer)
var signinmanager = container.Resolve<ISignInManager<IMyIdentityUser>>();
或至少
var signinmanager = container.Resolve<ApplicationSignInManager>();
如何集成温莎与owin管道?或者,至少,如何在不使用owin的情况下将CookieAuthentication与我的自定义ApplicationSignInManager一起使用(并且不需要自己重写整个cookie身份验证)?
我已经看到很多与城堡windsor作为owin依赖解析器的文章,但它主要是关于自我托管owin。