asp.net – 触发OWIN cookie中间件设置为被动身份验证模式的正确方法是什么?
|
我一直在关注OAuth 2.0 Authorization Server示例代码
以及查看mugget包Microsoft.aspnet.identity.samples包 我正试图了解被动与活动cookie中间件的工作原理. 在授权服务器示例中,“应用程序”cookie设置为被动. 当我阅读有关此属性的内容时,它解释了只有在匹配的AuthenticationType请求时才会触发被动中间件. 如果我编辑Microsoft.aspnet.identity.samples中的startup.auth.cs文件并将应用程序cookie设置为被动,然后登录,它似乎验证,但不会登录. 深入挖掘代码,我看到帐户控制器归结为对SignInHelper.SignInAsync的调用 此方法获得用户的声明权限,即调用:CreateIdentityAsync(user,DefaultAuthenticationTypes.ApplicationCookie) 我显然不理解某些东西,因为根据我的阅读并且可以说,cookie具有与Claim相同的AuthenticationType,但是当调用Authentication.SignIn时,Cookie似乎没有设置并且我返回到主页面,包含注册和登录选项. 要复制该问题,请启动一个新的项目空asp.net应用程序,然后安装Identity示例包,然后将startup.auth.cs的app.useCookieAuthentication更改为: app.UseCookieAuthentication(new CookieAuthenticationOptions {
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Passive,LoginPath = new PathString("/Account/Login"),Provider = new CookieAuthenticationProvider {
// Enables the application to validate the security stamp when the user logs in.
// This is a security feature which is used when you change a password or add an external login to your account.
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager,ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),regenerateIdentity: (manager,user) => user.GenerateUserIdentityAsync(manager))
}
});
我尝试在startup.auth.cs中更改cookie名称,并将“自定义”名称添加到生成声明无效的代码中. 我将继续研究,但我认为我会在此期间与社区联系. 解决方法我不确定你有什么确切的问题.OWIN是一个运行所有注册的中间件模块的管道.您可以注册多种身份验证类型的中间件. cookie解密到身份.如果将身份验证类型更改为外部承载,则它将成为cookie中的承载令牌. 我不确定为什么它不适合你,这就是我用的. (我没有看过模板的外部登录) // Enable the application to use a cookie to store information for the signed in user
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
//just to show bearer
AuthenticationType = DefaultAuthenticationTypes.ExternalBearer,}
Good explanation of active vs. passive,from Mr. Brock Allen himself. 主动与被动认证中间件 出现一个问题 – 如果新模板配置了多个OWIN认证中间件,那么真正使用哪一个?那么,OWIN认证中间件具有被动与主动的概念.活动中间件始终查看每个传入请求并尝试对呼叫进行身份验证,如果成功,则会创建代表当前用户的主体并将该主体分配给托管环境.另一方面,被动中间件仅在被要求时检查请求.对于Visual Studio 2013中的默认模板,默认情况下配置的所有中间件都是被动的,除了“主”cookie身份验证中间件(原来有两个cookie中间件在一些模板中使用 – 主要的一个和另一个用于外部身份提供者,另一个被标记为被动). (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 从2.0到3.5的ASP.NET框架效应?
- asp.net – 你能用Javascript来检测服务器端创建的文件下载
- asp.net-mvc – 使用ASP.NET会员资格和配置文件与MVC,如何创
- asp.net-mvc – MVC5中的Bundle.IncludeDirectory输出错误的
- asp.net – 在Visual Studio 2012中创建控制器时出错
- asp.net-mvc – 在asp.net mvc 3剃刀中识别html助手的问题
- asp.net-web-api – 从ASP.NET Web API ASP.NET Core 2返回
- 谈谈ASP.NET Core中的ResponseCaching
- asp.net-mvc – 具有SelectList(s)最佳实践的ASP.NET MVC V
- asp.net – 如何通过webservice从返回的数据集中删除“diff
- asp.net-mvc – 将javascript对象作为字典传输到
- asp.net – 如何自动执行功能/集成测试和数据库回
- asp.net-mvc – Sql Views的流畅Nhibernate映射
- asp.net-mvc – 从MVC5框架OAuth/OWin身份提供程
- asp.net-mvc – ASP.NET MVC模型绑定外键关系
- asp.net-mvc – Asp.net 5(vnext)是否可以使用?
- asp.net-mvc – ASP.NET MVC:从控制器返回CDN图
- asp.net-mvc – formcollection只保存所选的html
- 如何阻止IIS 8停止空闲的ASP.NET应用程序?
- 模型视图控制器 – 如何在自定义MembershipProvi
