我使用库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);
}
}
感谢您的帮助。
答案 0 :(得分:0)
可以使用自定义Cookie提供程序配置Cookie域 - 这通常配置为应用程序启动过程的一部分 - 您可能还有一个App_Start
类的Startup.Auth.cs
文件夹它(如果你已经开始使用典型的基础项目。
您的提供商看起来像:
public class CookieAuthProvider : CookieAuthenticationProvider
{
public override void ResponseSignIn(CookieResponseSignInContext context)
{
//Alter you cookie options
context.CookieOptions.Domain = ".AAA.de";
base.ResponseSignIn(context);
}
}
然后,您可以通过以下方式从启动课程中调用此方法:
CookieAuthProvider myProvider = new CookieAuthProvider();
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = myProvider
});
严重基于this answer到“Asp.Net Identity - 在运行时设置CookieDomain”