相关疑难解决方法(0)

在Rails 3中更改区域设置后,在新域中重定向到同一页面

使用Rails 3.2.8与以下宝石的应用程序

gem 'friendly_id', '~> 4.0'
gem 'route_translator'
Run Code Online (Sandbox Code Playgroud)

在/config/initializers/i18n.rb中

TLD_LOCALES = {
  "com"  => :en,
  "jobs" => :en,
  "net"  => :en,
  "in"   => :en,
  "de"   => :de,
  "ch"   => :de,
  "at"   => :de,
  "br"   => :pt,
  "ar"   => :es,
  "cl"   => :es,
  "mx"   => :es 
}
Run Code Online (Sandbox Code Playgroud)

在/app/controllers/application_controller.rb中,使用before-filter为每个请求设置区域设置:

before_filter :set_auto_locale
def set_auto_locale
  I18n.locale = TLD_LOCALES[request.host.split('.').last]
end
Run Code Online (Sandbox Code Playgroud)

在routes.rb中

localized do
  match "label_vacancies/:view_job"=>"job_seekers#view_job"
  get "label_aboutus", :to => "home#about_us", :as => "about_us"
end
Run Code Online (Sandbox Code Playgroud)

当用户请求更改语言区域设置时,域下方应根据请求的区域设置加载.

在初始化器中

domain_based_on_locale = {
    :en => "xxxxx.com",
    :de => "xxxxx.de", …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails internationalization rails-routing ruby-on-rails-3.2

15
推荐指数
1
解决办法
1215
查看次数

如何在同一台服务器上的多个域中维护PHP会话?

我正在寻找一种在同一台服务器上跨多个域维护PHP会话的方法.我将要将我的网站与简单机器论坛集成,因此我需要使用基于MySQL的会话.谢谢!

php mysql session

7
推荐指数
1
解决办法
1万
查看次数

多租户ASP.NET MVC应用程序的跨域OWIN身份验证

我正在为多租户ASP.NET MVC应用程序使用OWIN身份验证.

应用程序和身份验证位于单个应用程序中的一台服务器上,但可以通过许多域和子域进行访问.例如:

www.domain.com
site1.domain.com
site2.domain.com
site3.domain.com
www.differentdomain.com
site4.differentdomain.com
site5.differentdomain.com
site6.differentdomain.com
Run Code Online (Sandbox Code Playgroud)

我想允许用户登录这些域中的任何域并使其身份验证cookie工作,无论用于访问应用程序的域是什么.

这就是我的身份验证设置:

public void ConfigureAuthentication(IAppBuilder Application)
{
    Application.CreatePerOwinContext<RepositoryManager>((x, y) => new RepositoryManager(new SiteDatabase(), x, y));

    Application.UseCookieAuthentication(new CookieAuthenticationOptions
    {
        CookieName = "sso.domain.com",
        CookieDomain = ".domain.com",
        LoginPath = new PathString("/login"),
        AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,  
        Provider = new CookieAuthenticationProvider
        {
            OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<UserManager, User, int>(
                validateInterval: TimeSpan.FromMinutes(30),
                regenerateIdentityCallback: (manager, user) => user.GenerateClaimsAsync(manager),
                getUserIdCallback: (claim) => int.Parse(claim.GetUserId()))
        }
    });

    Application.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
}
Run Code Online (Sandbox Code Playgroud)

我还在我的应用程序的根web.config中为我的应用程序显式设置了一个机器密钥:

<configuration>
    <system.web>
        <machineKey decryption="AES" decryptionKey="<Redacted>" validation="<Redacted>" validationKey="<Redacted>" />
    </system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)

更新

当我在domain.com和site1.domain.com之间导航时,此设置按预期工作,但现在它不允许我登录differentdomain.com. …

c# asp.net asp.net-mvc multi-tenant owin

7
推荐指数
1
解决办法
6071
查看次数