小编RuS*_*uSh的帖子

IP和域限制

我们的ASP.NET网站托管在Windows Server 2008和IIS7上.

最近我们遇到了某些IP的"攻击"问题,这些攻击通过提交带有无效参数的不同表单而产生大量错误.

我希望能够根据asp.net代码生成的列表阻止24小时的IP地址列表.我知道可以使用Web.config - ipSecurity Tag实现这一点.我找到了以下示例:

http://www.dantor.com/support/misc/web-config-ip-address-restriction.aspx

问题是更改/更新web.config将导致网站重新启动/回收.

是否可以在没有池回收的情况下更新阻止的IP列表?

编辑:

也许更好的想法是使用HttpModule实现这一点--Scott Hanselman在他的博客中写了一篇关于这个主题的帖子:http: //www.hanselman.com/blog/AnIPAddressBlockingHttpModuleForASPNETIn9Minutes.aspx

你认为这会导致性能下降吗?通过httpmodule路由所有网站请求可能会影响页面加载时间?关于如何完成这项工作的任何其他想法?

编辑2:

该网站受Fortigate 200a防火墙保护,但据我所知,防火墙无法自动阻止生成错误或尝试进行SQL注入的IP.

c# iis iis-7 windows-server-2008 ip-restrictions

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

WPF Listview行背景闪烁效果

我使用带ListView控件的WPF .

当某个参数设置为True时,我希望其中的行ListView具有闪烁动画.

我有以下代码可以工作,但一旦鼠标在动画的行上,动画就会停止.

我希望动画继续,直到参数更改回False.

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <Setter Property="IsSelected" Value="{Binding Selected}"/>
        <Style.Triggers>
            <DataTrigger Binding="{Binding DoBlink}" Value="True">
                <DataTrigger.EnterActions>
                    <BeginStoryboard>
                        <Storyboard FillBehavior="Stop">
                            <ColorAnimation Storyboard.TargetProperty="(Control.Background).(SolidColorBrush.Color)" 
                                            From="Blue" To="LightBlue" Duration="0:0:0.2"
                                            AutoReverse="True" RepeatBehavior="Forever" />
                        </Storyboard>
                    </BeginStoryboard>
                </DataTrigger.EnterActions>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</ListView.ItemContainerStyle>
Run Code Online (Sandbox Code Playgroud)

wpf binding styles wpf-controls

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

ASP.Net MVC和实体框架项目架构没有存储库模式

我正在使用ASP.NET MVC和Entity Framework开始一个新的小项目.(SQL Server - 大约20个DB表)在过去的项目中我使用过Linq2SQL,但它似乎已经过时了.

我已经阅读了很多关于使用EF存储库模式的帖子(优点和缺点),对我而言,没有存储库模式的代码似乎更好/更简单.

我创建了以下项目架构:

namespace MySite.Models
{
    public class User
    {
        public Int32 ID { get; set; }
        public String Email { get; set; }
        public String Password { get; set; }
        public String Name { get; set; }
        public Int32 Gender { get; set; }
    }
}

namespace MySite.DAL
{
    public class Users
    {
       public static IEnumerable<User> GetUsers()
        {
            using (var context = new DatingSiteContext())
            {
                return context.Users.ToList();
            }
        }

        public static User GetUserByID(int id) …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc entity-framework linq-to-sql

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

编译Linq和String.Contains

我正在使用Linq-to-SQL,我使用编译的Linq来获得更好的性能.

我有一个INT名为"LookingFor"字段的用户表,它可以具有以下值:1,2,3,12,123,13,23.

我写了一个查询,根据"lookingFor"列返回用户,我想返回包含"lookingFor"值的所有用户(不仅仅是那些等于它的用户).

在示例if user.LookingFor = 12和query参数中1,应该选择此用户.

private static Func<NeDataContext, int, IQueryable<int>>
      MainSearchQuery = CompiledQuery.Compile((NeDataContext db, int lookingFor) =>
         (from u in db.Users
          where (lookingFor == -1 ? true : u.LookingFor.ToString().Contains(lookingFor)                         
    select u.username);
Run Code Online (Sandbox Code Playgroud)

这个工作在非编译的linq上,但在使用编译时抛出错误.如何使用编译的Linq修复它?

我收到此错误:

String.Contains方法仅支持可在客户端上计算的参数.

.net linq linq-to-sql

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

SQL Server 2008:INSERT如果不退出,则维护唯一列

我正在使用SQL Server 2008.

NVARCHAR(MAX)在表中有一个列,我想确保它是唯一的.该表有600,000条记录,每天增加50,000条记录.

目前在向表中添加项目之前,我检查它是否存在于表中,如果不存在,我将其插入.

IF NOT EXISTS (SELECT * FROM Softs Where Title = 'example example example.')
BEGIN
INSERT INTO Softs (....)
VALUES (...)
END
Run Code Online (Sandbox Code Playgroud)

我在Title列上没有索引

最近,我在向桌子插入物品时开始超时.

什么是维持独特的正确方法?

如果真的有帮助我可以将NVARCHAR(MAX)更改为NVARCHAR(450)

.net sql sql-server sql-server-2008

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