小编Lef*_*eff的帖子

CookieContainer不存储国际化域名的cookie

我正在尝试使用WebClient在西里尔字段上执行授权.授权经过几个阶段,在正常域和punicode域之间进行重定向.问题是HttpWebRequest无法在指定的CookieContaier中存储cookie,如果它是由punycode域设置的.例如,此代码将抛出CookieException.

var cookie = new Cookie("test_cookie", "test_value", "/", ".xn----7sbcca6bi0ak9b0a6f.xn--p1ai");
var container = new CookieContainer().Add(cookie);
Run Code Online (Sandbox Code Playgroud)

将cookie重定向设置到另一个页面的响应加剧了这个问题,即在执行WebClient.UploadValues(...)之后,WebClient.ResponseHeaders中没有cookie信息.

以下是正常的授权过程(使用浏览器)

Method  Result  Received  Type       URL                                                        RedirectURL                                                Set-Cookie                                                                                                                                 
POST    302     1,18 K    text/html  http://xn----7sbcca6bi0ak9b0a6f.xn--p1ai/admin/login       http://xn----7sbcca6bi0ak9b0a6f.xn--p1ai/admin             sess_id=.......; expires=Mon, 06-Jun-2016 07:20:57 GMT; Max-Age=31536000; path=/; domain=.xn----7sbcca6bi0ak9b0a6f.xn--p1ai; httponly     
GET     302     722       text/html  http://xn----7sbcca6bi0ak9b0a6f.xn--p1ai/admin             /admin/orders                                                                                                                                                                                        
GET     200     200,00 K  text/html  http://xn----7sbcca6bi0ak9b0a6f.xn--p1ai/admin/orders                                                                                                                                                                                                            
Run Code Online (Sandbox Code Playgroud)

有没有解决方法?

.net c# cookies punycode idn

6
推荐指数
1
解决办法
372
查看次数

Visual Studio 在发布过程中使用 launchSettings.json 配置文件中定义的哪一个?

我正在尝试配置 ASP.NET Core 项目发布配置文件以部署到临时环境。服务器上设置了预配置的 ASPNETCORE_ENVIRONMENT 变量,但无论我尝试什么,Visual Studio 都会不断将 ASPNETCORE_ENVIRONMENT 变量定义添加到发布 web.config 文件中。消除它的唯一方法是从 launchSettings.json 中删除。

这会导致几个问题:

  1. 尽管 learn.microsoft.com 表示此选项应该完全覆盖环境变量,但实际上 HostingEnvironment.EnvironmentName 属性的值设置为“Staging;Environment”,环境变量值和 web.config 设置的串联值。
  2. 结果,这会阻止加载适当的 appsettings.{environment}.json 并破坏所有环境感知逻辑。
  3. 我更愿意将 ASPNETCORE_ENVIRONMENT 保留在 launchSettings.json 中以进行调试。

我找不到任何控制此行为的设置。有没有?

这是我的 .pubxml

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>MSDeploy</WebPublishMethod>
    <LastUsedBuildConfiguration>Release.Main</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
    <ProjectGuid>433bb565-5e85-4f1a-9dd4-a7f437fdb534</ProjectGuid>
    <SelfContained>false</SelfContained>
    <_IsPortable>true</_IsPortable>
    <MSDeployServiceURL>http://192.168.0.22</MSDeployServiceURL>
    <DeployIisAppPath>auth/main</DeployIisAppPath>
    <RemoteSitePhysicalPath />
    <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
    <MSDeployPublishMethod>RemoteAgent</MSDeployPublishMethod>
    <EnableMSDeployBackup>True</EnableMSDeployBackup>
    <_SavePWD>False</_SavePWD>
  </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

启动设置.json

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iis": {
      "applicationUrl": "https://localhost/DocShellWeb.Sts",
      "sslPort": 0
    }
  },
  "profiles": {
    "DocShellWeb.Sts": { …
Run Code Online (Sandbox Code Playgroud)

c# iis web-config visual-studio asp.net-core

2
推荐指数
1
解决办法
2960
查看次数

标签 统计

c# ×2

.net ×1

asp.net-core ×1

cookies ×1

idn ×1

iis ×1

punycode ×1

visual-studio ×1

web-config ×1