小编Bra*_*ery的帖子

HTML JavaScript包含文件变量范围

如果我在我的HTML页面中包含一个JavaScript文件,那么我的JavaScript文件中声明的变量是否也在<script />我的HTML页面的标签中有作用域?例如,在我包含的JS文件中,我声明了一个变量:

var myVar = "test";
Run Code Online (Sandbox Code Playgroud)

然后在我的HTML页面中,这将产生什么(如果它在我的include脚本标记之后)?

alert(myVar);
Run Code Online (Sandbox Code Playgroud)

html javascript

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

将 JSON 对象传递给 Web 方法

我想和大家分享我今天学到的东西。我的问题是:

您可以将 JSON 对象从 JavaScript 代码传递到 .NET 页面方法吗?例如:

  var task = { 
    Title: $("#titlenew input", $(newTaskRow)).val(), 
    StartDate: $("#startnew input", $(newTaskRow)).val(), 
    EndDate: $("#endnew input", $(newTaskRow)).val(), 
    EstimatedHours: $("#esthrsnew input", $(newTaskRow)).val(),
    PredecessorsOutlineNumbers: $("#depnew input", $(newTaskRow)).val(),
    OutlineNumber: $("#ordernew", $(newTaskRow)).text()
  };
  PageMethods.AddTask(task, saveNewTaskCompleted, saveNewTaskFailed);
Run Code Online (Sandbox Code Playgroud)

如果可以,我的 Web 方法应该接受什么类型的 .NET 对象?

我发现是的,你可以将一个 JSON 对象传递给一个 Page 方法,它作为一个字典(字符串,字符串)出现。所以我的 web 方法签名是这样的:

<System.Web.Services.WebMethod()> _
Public Shared Sub AddTask(ByVal taskJson As Dictionary(Of String, String))

  Dim oTask As New Task()
  oTask.Title = taskJson("Title")
  ' all other accesses to the JSON object here

End …
Run Code Online (Sandbox Code Playgroud)

javascript asp.net ajax json asp.net-ajax

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

将用户从一个ASP .NET应用程序安全地转移到另一个

我有一个ASP .NET Web应用程序,它使用表单身份验证.我们称这个应用为"Foo".我正在创建另一个名为"Bar"的ASP .NET应用程序.

我想要发生的是用户登录到Foo,然后单击一个链接,将它们带到Bar应用程序中的页面.Bar应用程序不应要求Foo用户再次登录.Foo应用程序应该将安全票证传递给Bar应用程序,然后用户可以在Bar应用程序中进行他/她的业务.

我还想限制对Bar应用的访问.因此,如果用户在未首先登录的情况下尝试访问Bar应用程序,则会将其重定向到Foo登录页面.

这可能吗?如果是这样,我该如何实现呢?

asp.net forms-authentication

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

命令行错误导致的MSBuild - System.Xml所需的引用

我正在创建一个批处理脚本,它将获取应用程序代码的最新版本,然后使用msbuild构建它.一切都有效,直到msbuild部分.这是运行msbuild的行:

C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe "code/Solution.sln" /p:Configuration="Debug"
Run Code Online (Sandbox Code Playgroud)

并且整个地方都出现了错误 - 所有错误都表示如下:

C:\code\project1\codefile1.vb(882): error BC30009: Reference required to assembly 'System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' containing the implemented interface 'System.Xml.Serialization.IXmlSerializable'. Add one to your project.
Run Code Online (Sandbox Code Playgroud)

Visual Studio 2008中的所有内容都没有错误地构建.这里发生了什么?

msbuild

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

如何在VS2008中禁用屏幕底部的HTML层次结构跟踪?

我怎么摆脱这个?

替代文字

我想要摆脱它的原因是,每隔一段时间,我会将鼠标向下移动到屏幕的底部,当我将鼠标移到此区域时,鼠标一直跳到屏幕的左上角.真的很烦人.我实际上必须让我的鼠标绕过这个我从未使用的"功能",并且可能只是增加VS引入的开销.所以,任何建议都会有所帮助.

visual-studio-2008

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

使用HTML保存属性 - 在输入或显示时进行编码?

我有一个系统,允许用户将HTML保留字符输入文本区域,然后将其发布到我的应用程序.然后将该信息保存到数据库中以供以后检索和显示.警报(应该)在你的头脑中消失.我需要确保避免XSS攻击,因为我会在应用程序的其他位置显示此数据.我看到以下是我的选择:

在保存到DB之前进行编码

我可以在进入数据库的过程中对数据进行HTML编码,因此数据库中不会输入任何HTML字符.

优点:

  • 开发人员不必记住在网页上显示数据时对数据进行HTML编码.

缺点:

  • 现在,数据对于基于桌面的应用程序(或HTML以外的任何其他应用程序)没有意义.东西出现像&lt; &gt; &amp;等.

保存到DB之前不要进行HTML编码

每当我需要在网页上显示数据时,我都可以对数据进行HTML编码.

优点:

  • 感觉正确,因为它保持了用户输入的数据的完整性.
  • 允许非基于HTML的应用程序只显示此数据,而无需担心HTML编码.

缺点:

  • 我们可能会在很多地方显示这些数据,我们必须确保每个开发人员都知道,当您显示此字段时,您需要对其进行HTML编码.
  • 人们忘记了事情.当我们忘记对数据进行HTML编码时,至少会有一次实例.

保存到DB之前擦除数据(不要HTML编码)

我可以使用经过充分测试的第三方库来删除潜在危险的HTML并获取安全的HTML片段来保存数据库,而不是HTML编码.

优点:

  • 保留大部分原始输入,以便以非HTML格式显示.
  • 如果开发人员忘记HTML编码此信息以便在网页上显示,则可以减少灾难性.

缺点:

  • 当用户最初输入数据时仍然会混淆数据.如果他们真的想要输入<script><object>标记,它就不会成功,我们会因此获得支持电话和电子邮件.

我的问题是:什么是最好的选择,或者如果有另一种方法可以解决这个问题,它是什么?

html-encode

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

如何使用JavaScript + jQuery确保URL是图像?

在我的Web应用程序中,用户可以将文本发布到Feed,文本可能包含URL.我的代码扫描URL并替换它们指向URL的锚标签.我想更改此设置,以便我的代码可以检测URL是否指向图像,如果是,则在锚标记内呈现图像标记,而不仅仅是URL文本.

我可以在服务器端代码上执行此操作,方法是向URL发送一个快速的"HEAD"请求,以查看Content-Type在响应上的内容,并且这可以正常工作.但是,由于显而易见的原因,它不能很好地扩展.

如果我能将这个逻辑推到客户端的浏览器上,那会更好.我想使用JavaScript + jQuery将'HEAD'请求发送到指定的URL,并从响应中读取Content-Type标头.

我知道跨域请求是个问题.我可以以某种方式使用JSONP吗?我有什么选择?

编辑 - 安全风险

我对我的问题得到了一些很好的答案,但我想用大胆的字母指出一些东西.正如亚当在评论中指出的那样,这是一种安全隐患.如果您可以保证图像的URL都来自可信域,那么您最好使用此解决方案.但是,在我的场景中,用户可以输入他们想要的任何URL.这意味着他们可以创建自己的网站,需要基本身份验证,然后在jQuery的运行设置src属性所创建的图像上,用户会看到一个用户名/密码对话框,这显然是一个巨大的风险.

javascript jquery

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

调用共享WebMethod时出现未知Web方法异常

我正在尝试在我的网站上实现视图跟踪Web服务.我正在使用JavaScript,因为我想从我的跟踪视图中排除任何搜索机器人.问题是当我尝试使用jQuery发布到我创建的Web服务时,我收到了"未知的Web方法"错误.

$(document).ready(function() {

  $.ajax({
    type: "POST",
    url: '<%=ResolveUrl("~/WS/ItemViewTrackingService.asmx/TrackItemView") %>',
    data: "{'itemType': 'thread', 'itemId':<%=mThread.ThreadID %>}",
    contentType: "application/json; charset=utf-8"
  });

});
Run Code Online (Sandbox Code Playgroud)

这是Web服务.

Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel

<System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class ItemViewTrackingService
  Inherits System.Web.Services.WebService

  <WebMethod(EnableSession:=True)> _
  Public Shared Sub TrackItemView(ByVal itemType As String, ByVal itemId As Int32)

    If itemType.Equals("column", StringComparison.OrdinalIgnoreCase) Then
      Services.ViewTrackingService.TrackColumnView(itemId)
    ElseIf itemType.Equals("thread", StringComparison.OrdinalIgnoreCase) Then
      Services.ViewTrackingService.TrackThreadView(itemId)
    End If

  End Sub

End Class
Run Code Online (Sandbox Code Playgroud)

该错误是ASP .NET错误:未知的Web方法TrackItemView.参数名称:methodName

我已经完成了数百次(看似),但我看不出我错过了什么.我确定这是小事......

asp.net jquery web-services asmx

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

传递ByRef时VB检查Null Reference

我有一个通过引用接受String的函数:

Function Foo(ByRef input As String)
Run Code Online (Sandbox Code Playgroud)

如果我这样称呼它:

Foo(Nothing)
Run Code Online (Sandbox Code Playgroud)

我想要它做一些不同的事情,如果我这样称呼它:

Dim myString As String = Nothing
Foo(myString)
Run Code Online (Sandbox Code Playgroud)

是否有可能在VB .NET中调用方法的方式中检测到这种差异?

编辑

为了澄清为什么我想要这样做,我有两种方法:

Function Foo()
  Foo(Nothing)
End Function

Function Foo(ByRef input As String)
  'wicked awesome logic here,  hopefully
End Function
Run Code Online (Sandbox Code Playgroud)

所有逻辑都在第二个重载中,但是如果Nothing传递给函数,我想执行不同的逻辑分支,而不是传入包含 的变量Nothing.

vb.net null pass-by-reference nothing

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

Multiline TextBox中的vbCrLf仅在调用.Trim()时显示

我有一个ASP TextBox,TextMode设置为MultiLine.当用户试图将换行符放入文本时,我遇到了保留vbCrLf字符的问题.当按下页面上的按钮时,我从控件中获取文本,使用String.Trim修剪它,并将该值赋给对象的String属性(该属性又将其赋值给私有内部String变量)在对象上).然后,该对象从私有内部变量获取值,并使用存储过程调用将其抛出到数据库中(它放入的SP参数是nvarchar(4000)).

ASPX页面:

<asp:UpdatePanel ID="UpdatePanel2" runat="server" RenderMode="Inline" UpdateMode="Conditional"
                ChildrenAsTriggers="true">
  <ContentTemplate>
    <!-- some other controls and things -->
    <asp:TextBox TextMode="MultiLine" runat="server" ID="txtComments" Width="100%" Height="60px" CssClass="TDTextArea" Style="border: 0px;" MaxLength="2000" />
    <!-- some other controls and things -->
  </ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)

代码背后:

ProjectRequest.StatusComments = txtComments.Text.Trim
Run Code Online (Sandbox Code Playgroud)

对象属性:

Protected mStatusComments As String = String.Empty
Property StatusComments() As String
  Get
    Return mStatusComments.Trim
  End Get
  Set(ByVal Value As String)
    mStatusComments = Value
  End Set
End Property
Run Code Online (Sandbox Code Playgroud)

存储过程调用:

  Common.RunSP(mDBConnStr, "ProjectStatusUpdate", _
    Common.MP("@UID", SqlDbType.NVarChar, 40, mUID), _
    Common.MP("@ProjID", SqlDbType.VarChar, 40, …
Run Code Online (Sandbox Code Playgroud)

asp.net textbox newline multiline

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