c# - 本地 IIS 上跨子域的表单例份验证

标签 c# asp.net-mvc forms-authentication subdomain

我知道可以使用设置在多个子域之间共享 cookie

<forms 
    name=".ASPXAUTH" 
    loginUrl="Login/" 
    protection="Validation" 
    timeout="120" 
    path="/"     
    domain=".mydomain.com"/>

在 Web.config 中。但是如何在本地机器上复制同样的东西。我在笔记本电脑上使用 Windows 7 和 IIS 7。所以我的实际网站 users.mysite.com 有网站 localhost.users/ localhost.host/用于 host.mysite.com 和类似的。

最佳答案

localhost.userslocalhost.host 是跨域的。 Cookie 不能跨域共享。

您可以这样配置它,以便子域不同但根域保持不变:

  • users.localhost
  • host.localhost

现在将 web.config 中的 cookie 域设置为 localhost:

domain=".localhost"

并在您的 c:\Windows\System32\drivers\etc\hosts 文件中添加以下 2 个条目:

127.0.0.1 users.localhost
127.0.0.1 host.localhost

现在您将能够在 users.localhosthost.localhost 之间成功共享身份验证 cookie。

啊,不要忘记在您的自动构建过程中加入一个步骤,在生产环境中发布之前将您的 web.config 值转换为正确的根域。

关于c# - 本地 IIS 上跨子域的表单例份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8278015/

相关文章:

c# - 错误 CS1061 : 'DbSet<T>' does not contain a definition for 'FromSql' and no extension method 'FromSql' accepting a first argument of type 'DbSet<T>'

asp.net-mvc - ASP.NET Razor 中的 HTML.ActionLink 与 Url.Action

c# - 在 Windows 7 中捕获控制台退出 C#

c# - 如何将 SonarLint 分析结果从 Visual Studio 发送到 SonarQube 服务器

javascript - 如果要在 ASP.NET MVC 5 中覆盖数据库行,如何向用户显示弹出窗口或警告

c# - web.config 中的条件位置授权?

sql-server - 如何在 SSRS 2008 RS 中配置/启用基于表单的身份验证

asp.net - Context.User.Identity.Name 与 HttpContext.Current.User.Identity.Name

c# - ASP.NET 突出显示选定的 MenuItem

c# - 将依赖添加为 DLL 或添加为项目