小编lis*_*ite的帖子

在FormsAuthentication.SignOut()之后,Page.User.Identity.IsAuthenticated仍然为true

我有一个页面,当你按"注销"它会重定向到login.aspx有一个Page_Load方法调用的页面FormsAuthentication.SignOut().

母版页会显示在屏幕的右上角的"注销"链接并显示它的条件Page.User.Identity.IsAuthenticatedtrue.然而,通过单步执行代码后,该signout方法不会自动设置IsAuthenticatedfalse这是相当恼人的,任何想法?

c# asp.net forms-authentication

61
推荐指数
3
解决办法
5万
查看次数

打开发布模式时捆绑不在MVC5中工作

我在BundleConfig.cs中配置了以下捆绑包:

bundles.Add(new StyleBundle("~/bundles/css").Include(
                      "~/assets/bootstrap/css/bootstrap.css",
                      "~/assets/css/global/all.css"));
Run Code Online (Sandbox Code Playgroud)

我使用以下内容引用它:

@Styles.Render("~/bundles/css")
Run Code Online (Sandbox Code Playgroud)

当我处于调试模式(web.config编译debug="true")时,它按预期工作,因为它将两个css文件呈现为正常,即:

<link href="/assets/bootstrap/css/bootstrap.css" rel="stylesheet"/>
<link href="/assets/css/global/all.css" rel="stylesheet"/>
Run Code Online (Sandbox Code Playgroud)

但是,当我设置debug="false"上述行为仍然发生时,它确实识别文件,但它只是正常渲染它们.

为了确认捆绑绝对可行,我已经在BundleConfig中启用了优化,即 BundleTable.EnableOptimizations = true;

每当我执行上述操作时,它会捆绑css并按预期显示,即:

<link href="/bundles/css?v=WBKHkZAJly7jUzHrVDT8SwfaQE-CA9dbOUQUlLKadNE1" rel="stylesheet"/>
Run Code Online (Sandbox Code Playgroud)

编辑:

有些人提到将以下代码添加到我的BundleConfig.cs文件中将实现我的目标:

#if DEBUG
            BundleTable.EnableOptimizations = false;
#else
            BundleTable.EnableOptimizations = true;
#endif
Run Code Online (Sandbox Code Playgroud)

我理解并欣赏这个响应,但根据文档,MVC捆绑的默认行为是在发布模式下捆绑但不在调试模式下捆绑.我不明白为什么我应该添加额外的代码来使它在它应该已经完成​​时执行此操作.

编辑2

我忏悔了.事实证明我打开了Views文件夹中的web.config而不是主web.config.我更改了主web.config中的设置,这对我来说很好.我责怪ReSharper

.net css c# asp.net-mvc bundling-and-minification

30
推荐指数
4
解决办法
2万
查看次数

如何在新版本的fancybox中将标题隐藏为默认标题

以前的版本有一个'titleShow': false,设置,但似乎已删除新版本.

我知道我可以使用jquery以编程方式隐藏它但我更喜欢使用内置功能来删除它?

javascript jquery fancybox

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

有没有办法动态更新Web API CORS中允许的源列表

我正在尝试为我的.Net Web API应用程序中的某些域启用CORS,并且能够通过此代码在Application Start上执行此操作.

public static void Register(HttpConfiguration config)
{
    //below comma separated string is built from database
    var domains = "http://www.myfirstdomain.com,http://www.myseconddomain.co.uk .... about 130 domains more..";
    config.EnableCors(new EnableCorsAttribute(domains, "*", "*"));
Run Code Online (Sandbox Code Playgroud)

但是,如果在应用程序处于活动状态时添加了新域,则在回收应用程序池并再次构建此列表之前,将不允许这些域发布.

有没有什么办法可以在我的应用程序生命周期内更新此列表?我知道我可以定期回收应用程序池,但这会导致某些请求出现延迟,理想情况下我可以不这样做.

我知道我可以在控制器方法上启用它,即..

[EnableCors("http://domain1.com,http://domain2.com", "*", "*")]
public HttpResponseMessage PostAsync([FromBody] MyRequest myRequest)
{
Run Code Online (Sandbox Code Playgroud)

但是,逗号分隔参数必须再次声明为常量,因此不能是动态的.

我是否遗漏了一些明显的显而易见的事情,或者是否有人会想到这样做的好方法?

编辑

这是我尝试编写自己的自定义EnableCors属性.

[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = false)]
public class EnableCorsByDomainAttribute : Attribute, ICorsPolicyProvider
{
    private readonly CorsPolicy _policy;

    public EnableCorsByDomainAttribute()
    {
        _policy = new CorsPolicy
        {
            AllowAnyMethod = true,
            AllowAnyHeader = true
        };

        var …
Run Code Online (Sandbox Code Playgroud)

asp.net ajax http cors asp.net-web-api

8
推荐指数
1
解决办法
5464
查看次数

Chart.js不尊重我的容器尺寸

我正在尝试使用Chart.js库创建折线图.我有一个div尺寸为600px宽,250px高度的尺寸,从我读过的库中,我们想要使用这些父尺寸创建折线图.

以下显示了我的HTML元素:

<div style="width:600px;height:250px">
    <canvas id="myChart"></canvas>
</div>
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的代码:

$(document).ready(function(){
     var data = {
                    labels: ["January", "February", "March", "April", "May", "June", "July"],
                    datasets: [
                        {
                            label: "My First dataset",
                            fillColor: "rgba(220,220,220,0.2)",
                            strokeColor: "rgba(220,220,220,1)",
                            pointColor: "rgba(220,220,220,1)",
                            pointStrokeColor: "#fff",
                            pointHighlightFill: "#fff",
                            pointHighlightStroke: "rgba(220,220,220,1)",
                            data: [65, 59, 80, 81, 56, 55, 40]
                        },
                        {
                            label: "My Second dataset",
                            fillColor: "rgba(151,187,205,0.2)",
                            strokeColor: "rgba(151,187,205,1)",
                            pointColor: "rgba(151,187,205,1)",
                            pointStrokeColor: "#fff",
                            pointHighlightFill: "#fff",
                            pointHighlightStroke: "rgba(151,187,205,1)",
                            data: [28, 48, 40, 19, 86, 27, 90]
                        }
                    ]
                };
                var …
Run Code Online (Sandbox Code Playgroud)

html javascript css jquery chart.js

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

我需要一个正则表达式将字符串转换为锚标记以用作超链接

嗨,我正在寻找一个会改变这种情况的正则表达式:

[check out this URL!](http://www.reallycoolURL.com)
Run Code Online (Sandbox Code Playgroud)

进入这个:

<a href="http://www.reallycoolURL.com">check out this URL</a>
Run Code Online (Sandbox Code Playgroud)

即用户可以使用我的格式输入URL,我的C#应用​​程序会将其转换为超链接.我想在C#中使用Regex.Replace函数,任何帮助都将不胜感激!

c# regex url

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

javascript null零比较差异背后的原因是什么?

我在Jeff Atwood 推文的背后问这个,它在javascript中显示以下null/zero比较的结果:

javascript中的null零比较

我以前见过这个并且很有趣,我想知道这种行为背后是否存在逻辑或推理?

javascript

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

检测来自 .NET 核心中间件的静态文件请求

我正在编写一些中间件来解析给定请求 URL 的子域以确定网站主题。我想忽略静态文件请求以减少不必要的数据库查找,我想知道是否有更简洁的方法来做到这一点。

这是我迄今为止尝试过的:

var staticFileExtensions = new List<string> { ".css", ".js", ".png", ".ico" };
if (staticFileExtensions.Any(x => httpContext.Request.Path.Value.EndsWith(x)))
{
    await _next(httpContext);
}
else
{
    var hostParts = httpContext.Request.Host.Host.Split('.').ToList();
    if (httpContext.Request.Path.StartsWithSegments(new PathString("/healthcheck"))
    || (hostParts.Count == 6 && _whitelistedDomains.Contains(hostParts[0])))
    {
        httpContext.Items.Add("account", hostParts[0]);
        await _next(httpContext);
    }
    else
    {
        httpContext.Response.StatusCode = (int)HttpStatusCode.NotFound;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我将它添加到 Startup.cs 的地方:

app.UseStaticFiles();
app.UseSpaStaticFiles();
app.UseDomainWhitelisting();
Run Code Online (Sandbox Code Playgroud)

感觉好像应该有一种更干净的方法来检测要忽略哪些请求,或者我可能遗漏了什么?

middleware asp.net-core

6
推荐指数
3
解决办法
498
查看次数

SQL Server日期格式从字符串

我们最近将我们的数据库迁移到了另一台服务器,因此我认为日期格式查询已经以某种方式发生了变化.

以前我们可以使用以下..

SELECT * FROM table WHERE date > 'YYYY-MM-DD'
Run Code Online (Sandbox Code Playgroud)

但是现在我们必须使用..

SELECT * FROM table WHERE date > 'YYYY-DD-MM'
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我需要更改以恢复到以前的版本吗?

sql sql-server

5
推荐指数
1
解决办法
1182
查看次数

使用 AWS 低级 API 将 null AttributeValue 传递到 DynamoDb

我正在尝试使用 C# 低级 API 更新 DynamoDB 表中的项目,如此处所述

这是我实现这一目标的尝试:

var response = DynamoClientProvider.Current.UpdateItem(new UpdateItemRequest
{
    TableName = "MyTable",
    Key = {{"TableId", new AttributeValue {S = "12345"}}},
    ExpressionAttributeNames =
    {
        {"#T","Timestamp"},
        {"#D","Data"}
        {"#K","MyKey"}
    },
    ExpressionAttributeValues =
    {
        {":Timestamp", new AttributeValue("2016-2-3 00:00:00.000")},
        {":Data", new AttributeValue("some data")}
        {":MyKey", new AttributeValue("some other data")}
    },
    UpdateExpression = "SET #D = :Data, #T = :Timestamp, #K = :MyKey",
    ConditionExpression = "attribute_not_exists (Data)",
    ReturnValues = ReturnValue.ALL_OLD
});
Run Code Online (Sandbox Code Playgroud)

MyKey该代码工作得很好,但是当为空字符串时存在问题。当它为空时,我收到以下错误:

Amazon.DynamoDBv2.AmazonDynamoDBException:ExpressionAttributeValues 包含无效值:提供的 AttributeValue 为空,必须恰好包含键支持的数据类型之一:MyKey

因此,我尝试传入 null,AttributeValue以便通过将其设置为以下内容来删除本例中的属性: …

c# amazon-web-services amazon-dynamodb aws-sdk

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

c#list compare

嗨,我需要找到一种方法来比较许多(c#)List对象,以输出每个对象中出现的数字.

例如

List1{1, 2, 3, 4, 5}
List2{1, 3, 6, 8}
List3{1, 2, 3}
Run Code Online (Sandbox Code Playgroud)

这将返回{1,3}

c# compare list

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

相关记录的最佳sql实践

嗨,我需要能够链接相关的应用程序,并试图找出保存,更新和删除的最佳实践表结构.

我有下表:

APPLICATION{ApplicationId, Name, Description}
Run Code Online (Sandbox Code Playgroud)

我需要能够说应用程序1链接到2和3.因此,如果打开应用程序2,您会看到它链接到应用程序1和3.然后应用程序3链接到1和2.

链表的最佳表结构是什么?

编辑

我的主要查询是我需要每个连接的记录,即对于应用程序1,2和3,我需要6条记录吗?1-> 2,1-> 3,2-> 1,2-> 3,3-> 1,3-> 2 ?? 如果不是,返回给定ID的所有链接应用程序的最佳查询是什么?

sql database-design join

0
推荐指数
1
解决办法
149
查看次数

每日 AWS Lambda 未创建 Athena 分区,但命令运行成功

我设置了一个 Athena 数据库,指向包含 ALB 日志的 S3 存储桶,并且一切正常。我按名为 的列对表进行分区datetime,其想法是它的格式为YYYY/MM/DD.

我可以使用以下命令通过 Athena 控制台手动创建分区:

ALTER TABLE alb_logs ADD IF NOT EXISTS PARTITION (datetime='2019-08-01') LOCATION 's3://mybucket/AWSLogs/myaccountid/elasticloadbalancing/eu-west-1/2019/08/01/'

我创建了一个 lambda 每天运行以创建一个新分区,但这似乎不起作用。我使用 boto3 python 客户端并执行以下命令:

result = athena.start_query_execution(
    QueryString = "ALTER TABLE alb_logs ADD IF NOT EXISTS PARTITION (datetime='2019-08-01') LOCATION 's3://mybucket/AWSLogs/myaccountid/elasticloadbalancing/eu-west-1/2019/08/01/'",
    QueryExecutionContext = {
        'Database': 'web'
    },
    ResultConfiguration = {
        "OutputLocation" : "s3://aws-athena-query-results-093305704519-eu-west-1/Unsaved/"
    }
)
Run Code Online (Sandbox Code Playgroud)

这似乎成功运行,没有任何错误,查询执行甚至返回了 QueryExecutionId 。但是,如果我SHOW PARTITIONS web.alb_logs;通过 Athena 控制台运行,它还没有创建分区。

我有一种感觉,这可能取决于权限,但是我已向 lambda 执行角色授予对 S3 上所有资源的完全权限以及对 Athena 上所有资源的完全权限,但它似乎仍然不起作用。

amazon-s3 amazon-web-services aws-lambda amazon-athena

0
推荐指数
1
解决办法
1244
查看次数