小编Edi*_*ang的帖子

如何制作可配置的DisplayFormat属性

我有一个日期格式,如:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime? CreatedOn { get; set; }
Run Code Online (Sandbox Code Playgroud)

现在,我想让我的应用程序中的每个日期时间格式从一个配置文件中读取.喜欢:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = SomeClass.GetDateFormat())]
public DateTime? CreatedOn { get; set; }
Run Code Online (Sandbox Code Playgroud)

但这不会编译.

我怎样才能做到这一点?

asp.net asp.net-mvc custom-attributes

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

使用C#属性处理异常

我想可以使用Attribute进行异常处理,而不是在每个方法中写"try ... catch".

例如,现在,我的每个方法都是这样的:

public void DoSomething()
{
    try
    {
        // do something
    }
    catch (Exception ex)
    {
        // exception handling rules, always the same.
        throw;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要:

[HandleException]
public void DoSomething()
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

可能吗?

c# attributes

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

黑客有可能解密ASP.NET会员密码吗?

我正在使用默认的SQL Provider,默认的web.config设置来实现ASP.NET Membership.

我注意到密码是哈希的.但我不知道asp.net如何哈希我的密码,所以我不确定黑客是否有可能解密这个?

如果asp.net使用相同的规则来哈希密码,大家都知道.比黑客更容易破解它.

例如.如果asp.net使用MD5(123456),结果是"E10ADC3949BA59ABBE56E057F20F883E",那么黑客可能会有一个MD5字典来查找它.

我的设置是:

<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
             maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
             applicationName="/" />
Run Code Online (Sandbox Code Playgroud)

- SQL语句:

SELECT am.UserId, am.[Password], am.PasswordSalt FROM aspnet_Membership am
Run Code Online (Sandbox Code Playgroud)

- 结果是:

F10A635D-22DA-419C-84E6-767D2A35A010,tpeiwPt5+kFbcocQZOuc4aoHeuI=,PVq9dPtbFxze9Erbfd7HrA==
Run Code Online (Sandbox Code Playgroud)

密码是123456,它变成"tpeiwPt5 + kFbcocQZOuc4aoHeuI =".

在不同的机器或不同的应用程序上,此值是否始终相同?

如果此值与盐"PVq9dPtbFxze9Erbfd7HrA =="有关,黑客是否可以使用此盐来解密我的密码?

asp.net-membership password-encryption

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

如何使用Entity Framework在多层应用程序中正确管理ObjectContext生命周期?

我在MVC3应用程序中看到了很多使用Entity Framework的例子,它们是非常简单的演示,只有一个mvc3 web项目,里面有edmx.

因此,他们可以通过"使用"语句使用开放和关闭连接的最佳实践:

using(var context = new SchoolEntities())
{
    // do some query and return View with result.
}
Run Code Online (Sandbox Code Playgroud)

并且,它可以正确使用"using"语句中的延迟加载(导航属性),因为上下文尚未处理:

foreach(var item in student.Course)
{
    // do something with the navigation property Course
}
Run Code Online (Sandbox Code Playgroud)

在它成为n层应用程序之前,所有事情似乎都是完美的.

我创建了DAL,BLL和MVC3 UI.

DAL已经EDMX里面,和运营商类,如SchoolDA.cs:

public class StudentDA()
{
    public Student FindStudent(int studentId)
    {
        using(var context = new SchoolContext())
        {
            // do query, return a student object.
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,在BLL中,如果我使用:

var student = studentDa.FindStudent(103);
Run Code Online (Sandbox Code Playgroud)

然后调用它的导航属性:

student.Course
Run Code Online (Sandbox Code Playgroud)

我会得到一个错误(当然):

ObjectContext实例已被释放,不能再用于需要连接的操作.

所以,我必须像这样更改StudentDA.cs:

public …
Run Code Online (Sandbox Code Playgroud)

entity-framework database-connection

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

为什么EntityFramework.Extended库在Update和Delete时不需要调用SaveChanges()?

我正在查看EntityFramework.Extended。它可以在数据库实体上运行Update()和Delete()。喜欢:

//delete all users where FirstName matches
context.Users.Delete(u => u.FirstName == "firstname");
Run Code Online (Sandbox Code Playgroud)

但有趣的是,它不需要调用context.SaveChanges(),它只是直接进入数据库并删除记录。

这是一个糟糕的设计吗?我认为对实体的每次修改都需要调用SaveChanges()才能生效并保持数据库和内存对象之间正确的关系和映射。

ado.net design-patterns entity-framework

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

将元素添加到javascript"dictionary"数组中

我有一个像这样的dict对象结构:

var dict = {
    11: 0,
    12: 0,
    13: 0
    ...
};
Run Code Online (Sandbox Code Playgroud)

我想做这个:

for (var i = 11; i < 42; i++) {
    dict.Add(i, 0);
}
Run Code Online (Sandbox Code Playgroud)

但我知道"Add()"不是在dict对象上定义的函数.

所以,我怎么能一行一行地写11~42呢?

javascript arrays jquery

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

Windows Phone 8 Slider控制步长

我想制作一个这样的滑块: Windows Phone设置页面滑块

注意有一点"|" 在每个滑块值之间,用户只能选择那些值.

但我发现设置SmallChange和LargeChange没用.

<TextBlock FontSize="44" Text="{Binding ElementName=ColorDarknessStepsSlider, Path=Value}"/>

<Slider x:Name="ColorDarknessStepsSlider" Margin="-12,0" Minimum="3" Maximum="5"
        SmallChange="1" LargeChange="1" />
Run Code Online (Sandbox Code Playgroud)

我希望用户只能选择3,4,5但它给我这个:

我的滑块

我不知道是什么问题.没有"|"我没事 在值之间标记,但至少用户必须只选择整数值3,4,5.我该怎么做?

silverlight xaml slider windows-phone-8

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

带有jCanvas的HTML5 Canvas:如何删除图层

我正在使用jCanvas构建一个HTML5应用程序,我需要删除一个图层,这是画布上的黑色圆圈,你可以在这里看到代码.

var cvLingualWidth = 945;
var cvLingualHeight = 100;

var cvLingual = document.getElementById("cvLingual");

function drawGrid() {
    var contextLingual = cvLingual.getContext("2d");

    for (var y = 0.5; y < cvLingualHeight; y += 6) {
        contextLingual.moveTo(0, y);
        contextLingual.lineTo(cvLingualWidth, y);
    }

    contextLingual.strokeStyle = "#DDD";
    contextLingual.stroke();
}

function drawCircle() {
    $("#cvLingual").drawArc({
        layer: true,
        name: "circleLayer_18",
        strokeStyle: "#000",
        strokeWidth: 2,
        x: 42,
        y: 70,
        radius: 8
    });
}

function clearCircle() {
    var circleLayer = $("#cvLingual").getLayer("circleLayer_18");
    // TODO
}

$(function () {
    drawGrid();
    drawCircle();
    $("#clear").click(function(){ …
Run Code Online (Sandbox Code Playgroud)

html5 canvas jcanvas

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