小编Erv*_*ter的帖子

Azure网站和Azure Web角色之间有什么区别

新的Azure网站与ASP.NET MVC应用程序的传统Azure Web角色之间存在哪些重大差异?我选择"网站"而不是"网络角色"的原因是什么?反之亦然?

让我们假设在任何一种情况下我都需要相同的容量(例如2个小实例).除了网站在预览期间有33%的临时折扣这一事实外,价格似乎具有可比性.

对于使用Web角色有困难或不可能的"网站",我能做些什么吗?例如,使用"网站"将多个网站放在一组虚拟机中变得容易吗?我是否会因"网站"与"网络角色"而失去任何东西?能够微调IIS吗?能否在本地使用缓存服务?

azure azure-web-roles azure-web-sites

235
推荐指数
6
解决办法
5万
查看次数

将视图特定的javascript文件放在ASP.NET MVC应用程序中的位置?

将视图特定的javascript文件放在ASP.NET MVC应用程序中的最佳位置(哪个文件夹等)是什么?

为了保持我的项目井然有序,我真的很想能够将它们与视图的.aspx文件并排放置,但是我没有找到一种很好的方法来引用它们而不暴露〜/ Views/Action /文件夹结构.让文件夹结构的细节泄漏真的是一件坏事吗?

另一种方法是将它们放在〜/ Scripts或〜/ Content文件夹中,但这是一个小小的烦恼,因为现在我不得不担心文件名冲突.不过,如果这是"正确的事情",我可以克服这种烦恼.

asp.net-mvc

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

KnockoutJS中数字的格式规则

我有一个带有大量小数位的数字的viewModel.如果我的绑定看起来像这样:

    <tr>
        <td data-bind="text: Date"></td>
        <td data-bind="text: ActualWeight"></td>
        <td data-bind="text: TrendWeight"></td>
    </tr>
Run Code Online (Sandbox Code Playgroud)

然后,当然,输出具有所有小数位并且非常不可读.将绑定更改为这样可以解决问题,但是非常冗长且"嘈杂":

    <tr>
        <td data-bind="text: Date"></td>
        <td data-bind="text: ActualWeight().toFixed(1)"></td>
        <td data-bind="text: TrendWeight().toFixed(1)"></td>
    </tr>
Run Code Online (Sandbox Code Playgroud)

注意,这是一个小片段,必须添加.toFixed(1)每个我绑定一个数字的位置导致比这里显示的更加凌乱的标记.

对于除数字之外的所有内容,覆盖toString一直是我控制输出内容的有效方法.有关告诉敲门的方法的任何建议,在我的页面的某些中心方式中,在将数字添加到输出之前将数字转换为字符串的功能是什么?

就此而言,有一个通用的方法告诉淘汰赛如何格式化任何类型的值似乎是有用的.重写Date.prototype.toString可以工作,但感觉有点沉重,因为它可能会影响.toString的其他用途除了敲门之外.

knockout.js

60
推荐指数
4
解决办法
6万
查看次数

生成加密安全身份验证令牌

背景:

这实际上是一个一般的最佳实践问题,但有关具体情况的一些背景可能会有所帮助:

我们正在为iPhone开发一个"连接"应用程序.它将通过REST服务与后端应用程序通信.为了在每次启动应用程序时不必提示用户输入用户名和密码,我们将公开一个"登录"服务,该服务在初始启动时验证其用户名和密码,并返回可用于将来Web的身份验证令牌服务请求真实数据.令牌可能有一个到期时间,之后我们会要求他们使用他们的用户名/密码重新进行身份验证.

问题:

生成此类令牌以用于身份验证的最佳做法是什么?

例如,我们可以......

  • 散列(SHA-256等)随机字符串并将其存储在给定用户的数据库中以及过期日期.在后续请求中对令牌进行简单查找以确保其匹配.
  • 使用密钥加密用户ID和一些其他信息(时间戳等).在后续请求中解密令牌以确保它是由我们发布的.

这感觉它必须是一个解决的问题.

c# security iphone wcf web-services

56
推荐指数
3
解决办法
4万
查看次数

使用WCF REST服务进行基本身份验证而不是Windows帐户?

是否有一种干净的方式来公开需要基本身份验证的WCF REST服务,但我们自己处理用户名/密码的实际验证?看来,当您在配置中告诉WCF要使用基本身份验证时,它会强制您在IIS中启用基本身份验证,而IIS只能对窗口帐户执行基本身份验证.

我们发现的唯一黑客是骗取WCF并告诉它服务没有安全性,然后使用通用的IHttpModule(它有一个专有的配置文件来指示哪些URL具有哪个身份验证/授权)在WCF堆栈之外进行身份验证要求).

似乎应该有更好的方法.有人吗?

rest wcf

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

在Visual Studio编辑器中配置<%%>块的格式

在Visual Studio 2010中,在"工具" - >"选项" - >"文本编辑器" - >"HTML" - >"格式" - >"标记特定选项"下,可以选择配置编辑器如何自动格式化不同的HTML和ASP.NET标记.这包括如果它应该在标签之前和之后自动添加换行符等等.

是否有以类似方式配置<%%> <%=%>和<%:%>块的格式规则的位置?

特别是,我不想在<%=和<%:blocks之前强制换行.

例如,我已经将h1标记的选项配置为不在其内容周围添加换行符,并且对静态内容有效,但是当h1标记中存在<%:或<%=块时,它不起作用.我目前得到这个:

<h1>
    <%: Model.Name %></h1>
Run Code Online (Sandbox Code Playgroud)

但我想这样:

<h1><%: Model.Name %></h1>
Run Code Online (Sandbox Code Playgroud)

在完美的世界中,我还想自动格式化<%%>块的内容,以确保<%及其内容之间始终存在空格.

例如,好:

<% if (something) { %>
Run Code Online (Sandbox Code Playgroud)

坏:

<%if (something) {%>
Run Code Online (Sandbox Code Playgroud)

那么,是否有任何设置埋藏在某处以控制这些格式化行为?

asp.net visual-studio-2010 visual-studio

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

ASP.NET MVC中特定于视图的模型?

我对MVC比较新,所以这可能是一个新手问题.

我试图了解如何在一些看似不直接的情景中保持明确的关注点分离的最佳实践.

我现在正在看两种情况.想象一个非常基本的应用程序,让用户可以查看和编辑律师的在线个人资料.有一个动作/视图可以显示特定用户的个人资料,还有一个动作/视图可以编辑特定用户的个人资料.很容易想象一个漂亮而干净的Model类来表示用户配置文件的详细信息,可能是使用Entity Framework进行的,并映射到用户配置文件SQL表.

在用于显示用户配置文件的视图操作/视图中,在功能上,我需要一个允许用户编辑配置文件的按钮或链接.但这应该只对某些用户子集可用.例如,用户可以编辑自己的配置文件.此外,超级用户可以编辑任何人的个人资料.我的问题是视图在呈现特定配置文件时应该如何确定链接是否存在.我认为View包含逻辑以确定当前用户是否可以编辑当前配置文件是错误的.我应该向UserProfile模型类添加IsEditable属性吗?这并不悲惨,但也感觉不完全正确.我应该创建一个新的Model类来聚合UserProfile以及有关安全性的其他信息吗?

另一种情况......当编辑特定的配置文件时,可编辑的事物之一是特定律师的专业列表.可能的专业清单并不固定.如果视图想要在组合框中呈现它们,则需要从数据库中列出所有可能的特性.视图不应该直接从数据库中获取它们,所以我是否再次进行聚合模型事物并为View提供UserProfile和有效专业列表?

我想我想弄清楚的一般性问题是我应该适应创建大量特定于各个视图的小型Model类.每个类都包含该特定视图所需的较大域模型的各个不相关部分.

asp.net asp.net-mvc

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

什么是限制textarea长度的最佳JavaScript解决方案?

有没有一个规范的解决方案来限制某人可以进入textarea的字符数量?

我当然有服务器端验证,但是想通过添加客户端代码来模拟使用maxlength输入[type ="text"]获得的体验来改善用户体验,这样用户就不会看到"你的输入也是如此"如果他们启用了JavaScript,则会显示"长"错误消息.

html javascript

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

如何将现有Azure Web角色转换为新式Azure网站?

是否可以将现有Azure Web角色(ASP.NET MVC)转换为新的Azure网站?除了创建一个新项目并将代码复制到新项目以使其看起来像旧应用程序之外,就是这样.

asp.net asp.net-mvc azure azure-web-sites

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

如何为 ASP.NET MVC 3 + Razor 视图封装可重用的“控件”

我正在寻找有关如何创建可在多个 MVC 3 视图上使用的可重用“控件”的最佳实践。我可以创建一个 Html 帮助程序扩展方法(以编程方式或使用 razor 中的声明性帮助程序),或者我可以创建一个部分视图。

就我而言,诀窍是我需要做的不仅仅是将一些 HTML 转储到视图调用帮助器/部分的位置。除了在该位置放置一些 HTML 标记之外,我还需要添加一些 javascript 代码以使其正常工作。通常,我会将此代码放在页面的其他位置(例如底部)。这当然不是严格要求的。另请注意,JavaScript 不是特定于控件实例的。换句话说,可以编写 JavaScript 来查找页面上控件 HTMl 标记的所有实例,并使用适当的事件等“激活”它。

我想到了几种可能性。

  1. 让助手/部分转储 HTML 并<script>在调用它的地方放置一个标签。这似乎是一个坏主意,因为这意味着该控件每页只能使用一次。
  2. 有两个帮手。第一个输出 HTML 标记,第二个输出 javascript。第二个只会被调用一次,并且会从页面底部调用,以便脚本最终位于正确的位置。如果我发明了第二个这样的控件,我将有 4 个助手(2 个用于 HTML,2 个用于 Javascript)。
  3. 发明某种可以向控件注册 javascript 的 ScriptManager。脚本管理器将有某种帮助程序,该帮助程序将添加到页面底部,并为所有注册了某些脚本片段的控件转储 JavaScript。对 scriptmanager 帮助程序的调用可以位于 _layout.cshtml 中,以便它自动发生在任何需要它的页面上。当页面不需要它时,它不会执行任何操作。我猜这看起来不太像 MVC。
  4. 只需使用一个助手来输出 HTML,然后将 javascript 添加到每个页面上包含的 site.js 中即可。如果 JavaScript 在页面上找不到任何相关标记(标记将具有具有特定类的包装元素),那么它会足够聪明,不会执行任何操作。不过,在所有页面上搜索标记都会产生开销,包括没有任何这些控件的页面。
  5. 与 #4 相同,但将 javascript 放入其自己的 .js 文件中,并仅将其包含在使用该控件的页面上。这对于不使用该控件的页面来说更有效,但对于使用该控件的页面来说,它是一个附加的 .js 文件和关联的 HTTP 请求。

我倾向于#4,但这是一个已解决的问题吗?有更好的第六种选择吗?

javascript asp.net-mvc razor

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