更改 cookie 中的域(ASP.Net 和 Microsoft.Owin.Security)
Change the domain in a cookie (ASP.Net and Microsoft.Owin.Security)
我使用库 Microsoft.Owin.Security、Microsoft.Owin.Security.OpenIDConnect 和 Microsoft.Owin.Security.Cookies。它工作正常,我可以创建一个安全 cookie。
但在安全 cookie 中是域 AAA.de
。如何将 cookie 中的域更改为 .AAA.de
?
这是我用来登录用户的代码。
public void SignIn()
{
if (!Request.IsAuthenticated)
{
HttpContext.GetOwinContext().Authentication.Challenge(
new AuthenticationProperties(
new Dictionary<string, string>
{
{Startup.PolicyKey, Startup.SignInPolicyId}
})
{
RedirectUri = Redirect,
}, OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
}
感谢您的帮助。
可以使用自定义 Cookie 提供程序配置 cookie 域 - 这通常作为应用程序启动过程的一部分进行配置 - 您可能还有一个 App_Start
文件夹和 Startup.Auth.cs
class 在其中(如果您已经开始使用典型的基础项目。
您的提供商看起来像:
public class CookieAuthProvider : CookieAuthenticationProvider
{
public override void ResponseSignIn(CookieResponseSignInContext context)
{
//Alter you cookie options
context.CookieOptions.Domain = ".AAA.de";
base.ResponseSignIn(context);
}
}
然后您可以从您的初创公司 class 通过以下方式调用它:
CookieAuthProvider myProvider = new CookieAuthProvider();
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = myProvider
});
主要基于 this answer 到 "Asp.Net Identity - Setting CookieDomain at runtime"
我使用库 Microsoft.Owin.Security、Microsoft.Owin.Security.OpenIDConnect 和 Microsoft.Owin.Security.Cookies。它工作正常,我可以创建一个安全 cookie。
但在安全 cookie 中是域 AAA.de
。如何将 cookie 中的域更改为 .AAA.de
?
这是我用来登录用户的代码。
public void SignIn()
{
if (!Request.IsAuthenticated)
{
HttpContext.GetOwinContext().Authentication.Challenge(
new AuthenticationProperties(
new Dictionary<string, string>
{
{Startup.PolicyKey, Startup.SignInPolicyId}
})
{
RedirectUri = Redirect,
}, OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
}
感谢您的帮助。
可以使用自定义 Cookie 提供程序配置 cookie 域 - 这通常作为应用程序启动过程的一部分进行配置 - 您可能还有一个 App_Start
文件夹和 Startup.Auth.cs
class 在其中(如果您已经开始使用典型的基础项目。
您的提供商看起来像:
public class CookieAuthProvider : CookieAuthenticationProvider
{
public override void ResponseSignIn(CookieResponseSignInContext context)
{
//Alter you cookie options
context.CookieOptions.Domain = ".AAA.de";
base.ResponseSignIn(context);
}
}
然后您可以从您的初创公司 class 通过以下方式调用它:
CookieAuthProvider myProvider = new CookieAuthProvider();
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = myProvider
});
主要基于 this answer 到 "Asp.Net Identity - Setting CookieDomain at runtime"