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