首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Startup.cs中获取当前域名

问如何在Startup.cs中获取当前域名
EN

Stack Overflow用户
提问于 2016-10-13 19:48:19
回答 1查看 17.6K关注 0票数 4

我有一个域名,有多个网站在它下面。

在我的Startup.cs中,我有以下代码

代码语言:javascript
复制
public void ConfigureServices(IServiceCollection services)
{
    services.AddIdentity<ApplicationUser, ApplicationRole>(options =>
    {
        options.Cookies.ApplicationCookie.CookieName = "MyAppName";
        options.Cookies.ApplicationCookie.ExpireTimeSpanTimeSpan.FromMinutes(300);
     })
     .AddEntityFrameworkStores<MyDbContext, Guid>()
     .AddDefaultTokenProviders();

在生产计算机上,我的所有站点都在IIS中同一站点下的子文件夹中,因此我不想使用默认域作为cookie名称,否则不同的站点cookie将具有相同的名称

我想要的是获取当前域,例如mydomain.com,然后将其附加到我在Startup.cs中指定的每个站点的显式cookiename,例如

代码语言:javascript
复制
 var domain = "get the server domain here somehow e.g. domain.com";
 ...
 options.Cookies.ApplicationCookie.CookieName = "MyAppName." + domain;

我该怎么做呢?

我问这个的原因是:

我可以在Chrome开发者工具中看到cookies位于我正在访问的站点的单独域名下。然而,有时我仍然会遇到这样的情况:当我在两台不同的服务器上登录同一站点时,我无法登录其中一台,而且它也没有记录任何错误。唯一的解决方案是使用另一个浏览器,所以我只能假设根据症状只能与cookie有关。

因此,我的问题实际上只是一个个人偏好问题,因为在我的环境中,我更喜欢将域名附加到cookie名称之后,尽管cookie只能属于特定的域。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-13 22:01:56

首先,我会在配置中存储域名。因此它将使我能够针对当前环境更改它。

代码语言:javascript
复制
options.Cookies.ApplicationCookie.CookieName = Configuration["DomainName"];

如果你不喜欢这种方式,你可以像这样在登录事件上覆盖cookie选项(我不确定下面的方式是否合适):

代码语言:javascript
复制
Events = new CookieAuthenticationEvents()
{
   OnSigningIn = async (context) =>
   {
       context.Options.CookieName = "MyAppName." + context.HttpContext.Request.Host.Value.ToString();
   }
}

或在配置和重写选项中捕获第一个请求

代码语言:javascript
复制
        bool firstRequest = true;
        app.Use(async (context, next) =>
        {
            if(firstRequest)
            {
                options.CookieName = "MyAppName." + context.HttpContext.Request.Host.Value.ToString();
                firstRequest = false;
            }
            await next();
        });

另请参阅类似的问题How to get base url without accessing a request

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40020135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档