小编Tod*_*ith的帖子

您是否可以为控制器启用[授权]但是为单个操作禁用它?

我想用[Authorize]我的管理控制器中的每个动作除了Login动作.

[Authorize (Roles = "Administrator")]
public class AdminController : Controller
{
    // what can I place here to disable authorize?
    public ActionResult Login()
    {
        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc authorization

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

Internet Explorer的javascript语法检查

是否有一些工具可以对我的JavaScript文件进行语法检查,看看它们是否包含会困扰Internet Explorer的Javascript引擎的语法错误,尤其是多余的尾随逗号?

例:

var some_object = {
  valid : "property",
  one : "comma too much ---> ",
};
Run Code Online (Sandbox Code Playgroud)

此代码在FireFox,Chrome 和Node.JS中正常工作,但由于尾随逗号而在IE中失败.IE的集成调试器很少有帮助,因为它不会像我们那样为大型Web应用程序产生有用的错误/警告(许多JavaScript文件总结在一起,总计达50-100 k行代码).

JSLint没有帮助,因为它报告了大量其他警告或停止在一些无意义的错误.

一个想法可能是eval()在IE中直接使用并捕获SyntaxError异常,但我无法以自动方式(即在命令行上)执行此操作.

遗憾的是,Node.JS并不关心尾随逗号.

没有Linux/Windows工具可以对文件进行基本的JavaScript语法检查吗?

javascript internet-explorer syntax-checking

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

ASP.NET MVC中的jQuery vs MicrosoftAjax

在什么情况下你会在ASP.NET MVC应用程序中使用MicrosoftAjax而不是jQuery?

根据Scott Cate在这个与Scott Cate一起使用的面向对象的AJAX播客中, MicrosoftAjax适用于向服务器发送数据和从服务器检索数据.jQuery一旦到达客户端就可以通过DOM操作数据.然而,使用简单的jQuery表单插件,您可以非常轻松地使用jQuery发送和检索数据.通常只有一行代码.

所以我想知道ASP.NET MVC中MicrosoftAjax和jQuery之间的区别是什么?

asp.net-mvc jquery asp.net-ajax

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

您如何将身份验证,角色和安全性编入您的DDD?

如何在C#域驱动设计项目中实现角色和安全性?关于它是应该由调用应用程序(ASP.NET MVC)还是在域模型本身(模型实体和服务)中实现,我们有一些争论.有些人认为它应该在网站本身,因为那是身份验证已经存在的地方.但这意味着每次与核心业务系统集成时都必须重新实现安全性.

例如:管理员应该能够在系统中执行几乎任何操作,例如编辑和删除记录(即他们可以删除用户的订单).另一方面,用户应该只能编辑和删除他们自己的记录(即他们可以在购物车中添加/删除项目).

顺便提一下,这里有一个很好的论文,涵盖了有关DDD和安全性的7种不同场景:

域驱动设计中的安全性

  • 第4章安全服务设计方案
    • 4.1场景1:作为常规服务的安全服务
    • 4.2场景2:UI中嵌入的安全性
    • 4.3场景3:封装域模型的安全服务
    • 4.4场景4:安全服务作为UI的网关
    • 4.5场景5:安全服务作为UI的适配器
    • 4.6场景6:AOP与适配器集成的安全服务
    • 4.7场景7:与AOP集成的安全服务

我个人倾向于使用PostSharp倾向于AOP,但之前没有做过多少工作,我犹豫不决.

c# security authentication domain-driven-design roles

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

在Windows服务中托管的WCF服务运行速度比控制台应用程序慢10倍

我有一个C#库,可以进行一些文件处理.我创建了一个控制台和桌面应用程序,它使用该库并在大约1分钟内处理256mb文件.然后我创建了一个托管在Windows服务中的WCF服务,该服务使用相同的文件处理库,但是当从网站调用时,处理相同的256mb文件需要花费10倍的时间.Windows服务在具有管理员权限的域帐户下运行.

调用WCF服务的开销非常快,但LoadFile方法需要更长的时间.我尝试在启动过程中增加进程优先级

Process.GetCurrentProcess ().PriorityClass = ProcessPriorityClass.High;
Run Code Online (Sandbox Code Playgroud)

无济于事.我在Win7 64位桌面系统(6gb),2003 XP 32位服务器(4gb)和2008 R2 32位服务器(4bg)上运行此服务都具有类似的结果.控制台和桌面应用程序在上述系统中大约1分钟处理文件.该过程似乎不受内存限制并进入swapville.

Windows服务是否以某种方式受到限制?在IIS下运行WCF服务会获得更好的结果吗?

编辑:我尝试从网站调用库目录,这也比控制台或桌面应用程序长10倍.

更新:原来是Log4PostSharp.控制台和桌面应用程序在配置文件中没有任何log4net痕迹,但网站和Windows服务却没有.有一个log4net TraceAppender静静地占用了宝贵的CPU周期.

c# performance wcf windows-services

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

无法加载类型System.Runtime.Diagnostics.ITraceSourceStringProvider

我刚刚将Windows Server 2008 R2就地升级到Windows Server 2012,现在我的WCF自托管服务启动但立即终止并出现以下错误:

服务无法启动.System.TypeLoadException:无法从程序集'System.ServiceModel.Internals,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'加载类型'System.Runtime.Diagnostics.ITraceSourceStringProvider'.在System.ServiceModel.Channels.TextMessageEncoderFactory..ctor(MessageVersion版本,编码writeEncoding,的Int32 maxReadPoolSize,的Int32 maxWritePoolSize,XmlDictionaryReaderQuotas配额)在System.ServiceModel.Channels.HttpTransportDefaults.GetDefaultMessageEncoderFactory()在System.ServiceModel.Channels.HttpChannelListener..ctor System.ServiceModel.Channels上System.ServiceModel.Channels.HttpTransportBindingElement.BuildChannelListener [TChannel](BindingContext context)的System.ServiceModel.Channels.HttpChannelListener`1..ctor(HttpTransportBindingElement bindingElement,BindingContext context)中的(HttpTransportBindingElement bindingElement,BindingContext context) System.ServiceModel.Channels.MessageEnc中的.BindingContext.BuildInnerChannelListenerTChannel ...

在全新安装的Windows Server 2012上运行相同的服务(虽然没有完全修补atm).

.net c# wcf windows-server-2012

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

在ASP.NET MVC应用程序中过滤json输出的域对象的最佳方法

如果我在asp.net mvc中呈现常规视图,那么我在页面中显示的唯一域对象属性是我专门写出来的.例如:

<div><%= Customer.FirstName %></div>
Run Code Online (Sandbox Code Playgroud)

但是,如果我为json序列化一个域对象,它将包含每个属性.例:

public JsonResult Customer (int? id)
{
    Customer customer = _serviceLayer.GetCustomer (id.Value);

    return Json (customer);
}
Run Code Online (Sandbox Code Playgroud)

由于我不希望每个Customer属性都暴露出在这种情况下过滤json的输出属性的最佳方法是什么?你可以使用像UpdateModel()这样的包含/排除列表吗?使用代理类,如公共类JsonCustomer?你会推荐什么?

asp.net-mvc json

8
推荐指数
2
解决办法
4145
查看次数

您的域模型对象中包含哪些内容以及您的服务中包含哪些内容?

在域驱动设计中,您需要一个非贫困域模型,您如何决定在域对象和面向服务的方法中实现什么?

编辑:我用一个例子以不同的方式问这个,并在这里得到更好的答案

domain-driven-design

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

为什么 System.Configuration 在 References 中显示为小写?

我知道这是一个愚蠢的问题,但为什么 System.Configuration 在 References 中显示为小写(即程序集名为 System.configuration.dll)。这是一个错误还是一个设计决定?

.net visual-studio

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

在Visual Studio 2008中使用鼠标前后导航

我安装的Visual Studio 2008不支持在C#代码编辑器中使用鼠标进行IE样式的后退和前进导航.

搜索显示多人遇到此问题,但我还没有找到正确的解决方案.

甚至还有一个VS加载黑客只是为了解决"bug".

知道为什么这个功能对某些用户失败以及如何修复它?

visual-studio

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

从jQuery ajax response html更新多个div

我在asp.net mvc购物车中有一个页面,允许您输入优惠券并显示订单摘要以及其他页面内容.我想有一个更新按钮,它将验证优惠券代码,报告任何错误,并通过jQuery ajax更新页面上的订单摘要.

我知道我可以通过制作表单和部分视图并在jQuery提交中使用target属性来完成此操作.但是,我以为我可以做以下事情:

var options
{
  success: function (responseHtml) // contains the entire form in the response
  {
    // extract sub-sections from responseHtml and update accordingly

    // update <div id="coupon"> with coupon div from responseHtml
    // update <div id="order-summary> with order summary div from responseHtml
  }   
}
$('#my-form').ajaxSubmit(options); // submits the entire form
Run Code Online (Sandbox Code Playgroud)

这里的优点是我不必进行整页刷新或创建包含所有需要更新的区域的部分视图.有没有一种合适的方法通过jQuery ajax来做到这一点?

ajax asp.net-mvc jquery

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