我在使用身份和城堡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。