Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cookies MVC 5&x2B;ASP身份授权-在子域中共享cookie_Cookies_Asp.net Mvc 5_Subdomain_Asp.net Identity - Fatal编程技术网

Cookies MVC 5&x2B;ASP身份授权-在子域中共享cookie

Cookies MVC 5&x2B;ASP身份授权-在子域中共享cookie,cookies,asp.net-mvc-5,subdomain,asp.net-identity,Cookies,Asp.net Mvc 5,Subdomain,Asp.net Identity,我有一个带有子域的本地网站,如: localhost:55307 aaa.localhost:55307 bbb.localhost:55307 除了授权之外,它工作正常-如果我登录localhost:55307我就不会登录aaa。localhost:55307,因为我的子域被视为单独的域。我正在寻找解决方案,但找不到任何Asp标识(MVC4中的表单身份验证是无用的)。 基于中的一些问题和答案,我这样做了: 在Startup.Auth.cs中编辑CookieAuthenticationOpti

我有一个带有子域的本地网站,如:

localhost:55307
aaa.localhost:55307
bbb.localhost:55307
除了授权之外,它工作正常-如果我登录
localhost:55307
我就不会登录
aaa。localhost:55307
,因为我的子域被视为单独的域。我正在寻找解决方案,但找不到任何Asp标识(MVC4中的表单身份验证是无用的)。 基于中的一些问题和答案,我这样做了:

  • Startup.Auth.cs
    中编辑
    CookieAuthenticationOptions
    类,如下所示:

    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
    LoginPath = new PathString("/Account/Login"),
    CookieDomain = ".localhost",
    ExpireTimeSpan = new TimeSpan(0,12,0,0,0),
    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))
    }
    
    AuthenticationType=DefaultAuthenticationTypes.applicationOK,
    LoginPath=新路径字符串(“/Account/Login”),
    CookieDomain=“.localhost”,
    ExpireTimeSpan=新的时间跨度(0,12,0,0,0),
    Provider=新CookieAuthenticationProvider
    {
    //允许应用程序在用户登录时验证安全戳。
    //这是一种安全功能,在您更改密码或向帐户添加外部登录时使用。
    OnValidateIdentity=SecurityStampValidator.OnValidateIdentity(
    validateInterval:TimeSpan.FromMinutes(30),
    regenerateIdentity:(管理器,用户)=>user.GenerateUserIdentityAsync(管理器))
    }
    
  • 从IIS管理器获取MachineKey并添加到web.config:

  • 
    

    现在我可以登录了,但是cookies没有被共享——我仍然登录了一个子域


    注:我现在知道StackOberflow中有很多类似的问题,但没有一个是关于MVC 5和ASP身份的,也没有一个得到了解决方案。

    我有类似的必要性。除了当前版本中的代码略有不同之外,我无法更改cookie名称,也找不到任何相关资源。我有类似的必要性。除了当前版本中的代码略有不同之外,我无法更改cookie名称,也找不到任何关于此的资源。