asp.net – 如何自定义UseExternalSignInCookie?
发布时间:2020-12-16 07:25:04 所属栏目:asp.Net 来源:网络整理
导读:我正在使用ASP.NET Identity 2.0并尝试将“.AspNet.ExternalCookie”cookie的域设置为“.mydomain.com”,因为我想从另一个子域读取cookie. 一些解决方案说我可以更改此代码: app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); 对此
我正在使用ASP.NET Identity 2.0并尝试将“.AspNet.ExternalCookie”cookie的域设置为“.mydomain.com”,因为我想从另一个子域读取cookie.
一些解决方案说我可以更改此代码: app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); 对此: app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ExternalCookie,CookieName = CookieAuthenticationDefaults.CookiePrefix + "External",LoginPath = new PathString("/Account/Login"),CookieDomain = ".mydomain.com" }); 但是我收到以下错误:
我的完整代码如下所示: public void ConfigureAuth(IAppBuilder app) { app.CreatePerOwinContext(ApplicationDbContext.Create); app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create); app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,Provider = new CookieAuthenticationProvider { OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager,ApplicationUser>( validateInterval: TimeSpan.FromMinutes(30),regenerateIdentity: (manager,user) => user.GenerateUserIdentityAsync(manager)) } }); //app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ExternalCookie,CookieDomain = ".mydomain.com",ExpireTimeSpan = TimeSpan.FromMinutes(5) }); app.UseMicrosoftAccountAuthentication( clientId: "1",clientSecret: "1"); app.UseTwitterAuthentication( consumerKey: "2",consumerSecret: "2"); app.UseFacebookAuthentication( appId: "3",appSecret: "3"); app.UseGoogleAuthentication(); } 解决方法
似乎有两个解决方案:
解决方案1: 加 using Microsoft.Owin.Security; 加 app.SetDefaultSignInAsAuthenticationType(DefaultAuthenticationTypes.ExternalCookie); 在app.UseCookieAuthentication(…)之前 解决方案2: 加 app.Properties["Microsoft.Owin.Security.Constants.DefaultSignInAsAuthenticationType"] = "ExternalCookie"; 在app.UseCookieAuthentication(…)之前 此外,还应添加AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Passive,以便在从外部提供程序进行身份验证时不会自动登录用户(应该由应用程序控制,并且只应通过ApplicationCookie进行身份验证). app.SetDefaultSignInAsAuthenticationType(DefaultAuthenticationTypes.ExternalCookie); app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ExternalCookie,AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Passive,LoginPath = new PathString("/accounts/signin"),CookieHttpOnly = true,CookieDomain = ".mydomain.com" }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 如何将相同URL的GET和DELETE请求路由到不同
- 会话如何在asp.net中工作?
- asp.net-mvc-4 – MVC 4如果经过身份验证,则从登录页面重定
- 谈谈基于SQL Server 的Exception Handling[上篇]
- asp.net-mvc – 如何在ASP.NET MVC视图中使用扩展方法?
- 通过ASP.NET运行时将IIS7配置为服务器静态内容
- 使用Asp.Net文本框的Bootstrap Datepicker
- asp.net-mvc – MVC,DbContext和多线程
- 如何默认选择一个单选按钮 – asp.net mvc强类型的html助手
- asp.net-mvc – ASP.NET MVC中的Cookie管理
推荐文章
站长推荐
- asp.net – 创建一个工作线程,并在整个应用程序生
- asp.net – 如何在MVC 4中查询当前登录用户的AD信
- asp.net-web-api – 如何在Azure Service Fabric
- asp.net-web-api2 – 如何创建HttpRequestHeader
- 如何防止密码和其他敏感信息出现在ASP.NET转储中
- asp.net-mvc – 在2015年的MVC 5 Razor视图中减少
- asp.net-mvc – ErrorAttribute vs OnException与
- entity-framework – 在Junction表上使用EF Core
- asp.net-mvc – ASP.NET MVC:在回发上更改模型的
- asp.net-core – 什么是aspnet50和aspnetcore50?
热点阅读