我在网络和ASP.Net开发方面比较新,所以请耐心等待.在测试我们的网页的过程中,我注意到如果用户单击"刷新/重新加载",并在"重新发送信息"对话框上出现提示时单击"重试",则在用户选择之前触发的最后一个事件"刷新",随后将再次解雇.
作为一个例子,我们有"上一页"和"下一页"导航按钮,允许用户浏览一系列问题.如果操作员点击"刷新/重新加载",那么用户按下最后一个导航按钮将再次点火.这实际上是有道理的,但净效果是用户最终在他以前查看的下一页或上一页上.这种事情有解决方法吗?
我将以下JQuery函数附加到网页上n个文本框的模糊事件中.
$(document).ready(function() {
$("input[id$='_txtTuitionAmt']").blur(function() {
alert(this.value);
})
});
Run Code Online (Sandbox Code Playgroud)
它工作得很好.当用户选中任何文本框时,会弹出一个警告并在文本框中显示该值.
我很困惑的是"this.value",无论是JQuery还是JavaScript.我是否以正确的方式使用'this'对象,或者我应该做其他事情以获得元素的值?
对不起,如果我的问题看起来有点模糊.我只是试图掌握"这个"对象以及它是如何工作的.我查看了JQuery文档,但在"this"上找不到任何内容.
我有大约7TB的各种媒体文件(pdf,jpg,tiff),它们目前驻留在一个非常强大的文件服务器上.我正在考虑将数据移动到SQL Server 2008并使用Filestream属性来帮助我管理数据.我想这样做是因为我有管理这种媒体的网页,随着每天向文件服务器添加更多媒体,它们(网页)变得越来越慢.
编辑:网页很慢,因为它们中的许多都会生成报告,反映文件服务器的各种细节以及存储在其中的内容.从本质上讲,网页会梳理数千个文件夹和文件,以生成有关其中包含内容的报告.某些网页允许用户操作文件夹和文件并将其移动到不同的位置.因此,简而言之,我正在寻找更快的方式来管理这些文件.它还允许我在数据库中维护有关这些文件的元数据,从而允许我在数据库中查询此信息,而不是通过文件服务器为它进行梳理.
我的问题:
1)我做了一个概念验证并验证我可以在SQL Server 2008数据库本地创建一个文件流,并且我已成功读取并向其写入媒体.但是,我还没有弄清楚如何使用UNC作为文件流.换句话说,数据库托管在MySQLDB08上,我的文件存储在TheFileServer01上.我已经读过它了,但我还没到那里.任何有关这方面的帮助将不胜感激!
2)由于我有7TB(并且正在增长)的媒体,我的备份是否因其大小而无法管理?这是否可以阻止我使用Filestream?
任何建议或帮助将不胜感激!
这个问题纯粹是学术性的,因为我从来没有想过在实际代码中这样做.
使用LINQ to SQL,我想绑定IQueryable<T>到GridView.我尝试使用以下代码执行此操作,但我得到了异常:
无法访问已处置的对象.对象名:'Dispose后访问的DataContext.'.
这是我的代码,它IQueryable<tabGenre>使用LINQ to SQL:
public static IQueryable<lu_Genre> GetGenres2() {
using (BooksContextDataContext ctx = new BooksContextDataContext()) {
IQueryable<tabGenre> iq = from g in ctx.tabGenre
select g;
return iq;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的代码,它将GridView绑定到返回的IQueryable<T>.
private void GetGenres() {
gvGenre.DataSource = Genre.GetGenres2();
gvGenre.DataBind();
}
Run Code Online (Sandbox Code Playgroud)
那么为什么这不起作用呢?我可以只是一个.ToList<tabGenre>(),返回它,绑定它然后它会工作,但为什么IQueryable不会以同样的方式工作?我真正想要实现的是理解IQueryable可以做什么.
编辑: 我也尝试禁用延迟加载,但没有影响.
在我的.NET Web应用程序中,我通常有一个Scripts文件夹,其中包含我所有的JavaScript文件 - 大部分时间都是jQuery,偶尔会出现某种类型的JavaScript库.
我通过名为Nexpose的扫描程序对我的某个网站运行漏洞扫描,它告诉我Scripts文件夹对全世界开放 - 这意味着未经身份验证的用户可以下载文件夹中包含的JavaScript文件,这是一个关键的漏洞.根据Nexpose,Scripts文件夹应限制为仅允许经过身份验证的用户访问它.这引出了我的第一个问题.
如何将Scripts文件夹限制为仅经过身份验证的用户?我尝试将一个web.config文件放入Scripts文件夹,并拒绝以这种方式访问所有未经身份验证的用户,但它无法正常工作.我能够自己确定这个,但是进入我网站的登录页面,但没有登录,然后输入https://mywebsite/scripts/menubar.js,果然它允许我下载menubar.js文件.
第二个问题 - 为什么这被视为漏洞?我试图通过这里的可能性来推理我的方式,但我没有想出太多的东西.它是一个漏洞只是因为乔3333 h4x0r可以找出我正在使用的各种库,然后可能使用已知的漏洞攻击它们?
更新
绝大多数答案似乎是,因为.js文件可以在客户端的浏览器上打开和读取,所以不应该存在漏洞.可能存在的唯一漏洞是,如果开发人员以某种不安全的方式使用.js文件(我不是这样).
我有一个ASP.NET UpdatePanel,其中包含以下内容:
<asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<%-- jQuery dialog - Suppliers --%>
<div id="divSuppliers" style="display: none;">
<asp:ListBox ID="lstSuppliers" runat="server" SelectionMode="Single" Rows="10" Width="100%"
DataValueField="SupplierID" DataTextField="SupplierName">
</asp:ListBox>
<br /><br />
<asp:Button ID="btnSelectSupplier" runat="server" Text="Select 2" OnClick="btnSelectSupplier_Click" />
</div>
<asp:GridView ID="gvSuppliers" runat="server" AutoGenerateColumns="false" SkinID="gvSkin"
DataKeyNames="SupplierID" EmptyDataText="No Existing User Roles">
<Columns>
<asp:TemplateField HeaderText="Supplier Name">
<ItemTemplate>
<asp:Label ID="lblSupplierName" runat="server" Text='<%# Eval("SupplierName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Button ID="btnAddSupplier" runat="server" Text="Add Supplier"
Visible="false" OnClick="btnAddSupplier_Click" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnSelectSupplier" />
</Triggers>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
很简单,真的.只有我用于我的jQuery Dialog弹出窗口的div,带有单列的ASP.NET GridView控件和用于异步回发的ASP.NET按钮. …
在ASP.NET 4.0 Web应用程序中,我有一个由UpdatePanel包装的用户控件(请参阅下面的代码).
<asp:UpdatePanel ID="UpdatePanel5" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<UC:MyCustomCtrl ID="customCtrl" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
显然,这适用于在我的用户控件中导致回发的每个ASP.NET控件,因为它使它异步发生.但是,有一个过程不起作用!
我在用户控件中有一个ASP.NET按钮(Create Report),它向服务器发出异步请求.然后,服务器创建一个Excel电子表格,然后将电子表格放入HttpResponse以发送回客户端的浏览器,以便他们可以打开/保存它.但是,它在这一点上爆炸,因为对服务器的请求是异步的,显然你不能在异步请求期间在HttpResponse中放入二进制文件.
我该如何解决这个问题?
我有以下结构的数据:
唯一 ID (int) | 名字(字符串)| 姓氏(字符串)| Pct(双)
一组数据可能如下所示:
1 | 约翰 | 汉考克 | 49.5
2 | 约翰 | 汉考克 | 95.0
3 | 简| 汉考克 | 89.5
4 | 简| 汉考克 | 73.5
5 | 简| 汉考克 | 96.5
6 | 弗雷德 | 打火石 | 45.8
我需要的是将这些数据存储在客户端,以便浏览器可以访问它并可以使用 jQuery 进行操作。
例如,我在页面上有一个下拉列表(选择),其中包含三个值:
1) 低百分位
2) 中百分位
3) 高百分位
当用户选择下拉列表中的值之一时,我需要能够从上面的数据中选择符合所选值的项目。例如,如果他们选择 Low Percentile 值,那么我需要从数据中检索百分比小于 60% 的所有项目。
我对 jQuery 相当多才多艺,但我从来没有用它来存储这种类型的任何东西以供客户端检索。我可以以某种方式将这些数据存储在客户端的 JSON 对象中,然后可以随意选择和操作吗?
我在C#中有一个简单的类,我已经设置了使用XmlSerializer类序列化为XML.
[Serializable, XmlRoot("dc", Namespace= dc.NS_DC)]
public class DCItem {
// books??
[XmlElement("title")]
public string Title { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
DCItem序列化很好,因为代码现在正在设置(如上所示); 但是,我想更改属性"Title",以便它包含在"Books"节点中.例如:
<dc>
<books>
<title>Joe's Place</title>
</books>
</dc>
Run Code Online (Sandbox Code Playgroud)
这样做的最佳方法是什么?
我有一个在 4.0 框架上运行的 ASP.NET Web 窗体应用程序项目。我对 Web 应用程序非常熟悉,但对 Web 窗体应用程序不太熟悉。今天我遇到了他们两个之间的显着差异,我很困惑为什么这种差异甚至存在。
通常,在 Web 应用程序中,如果我想确定页面的当前用户是谁,那么我只需从User.Identity.Name检索他们的域登录信息。因此,当我在调试环境中按F5 运行我的解决方案(我的 Web窗体应用程序!)并发现 User.Identity.Name 为空时,我感到非常困惑。所以我然后在谷歌上搜索“User.Identity.Name 是空的”并遇到了一堵链接墙,这些链接主要是在他们没有禁用 IIS 中的匿名身份验证时遇到这个问题的人。当然,这不是我的问题(我认为),因为我只是在此处从 Visual Studio 2012 进行调试。
但是,我继续挖掘,最终在 HttpContext 上发现了一些不为空并返回用户域登录信息的晦涩属性。该属性是HttpContext.Current.Request.LogonUserIdentity.Name。这让我想到了我的问题......
问题:在我的 Web 窗体应用程序中,为什么 User.Identity.Name 为空而 HttpContext.Current.Request.LogonUserIdentity.Name 不是?
在此先感谢您的帮助!
编辑:忘记说明我在 web.config 中的内容(因为我确定如果我不这样做会被要求!)。
<system.web>
<customErrors mode="Off" />
<compilation debug="true" targetFramework="4.0" />
<authentication mode="Windows"/>
</system.web>
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="X-UA-Compatible" value="IE=10,chrome=1; IE=9,chrome=1; IE=8,chrome=1; IE=edge,chrome=1" />
</customHeaders>
</httpProtocol>
<modules runAllManagedModulesForAllRequests="true" />
<defaultDocument>
<files>
<add value="Home.aspx" />
</files>
</defaultDocument> …Run Code Online (Sandbox Code Playgroud) asp.net ×5
jquery ×4
.net-4.0 ×1
asp.net-4.0 ×1
c# ×1
c#-4.0 ×1
filestream ×1
gridview ×1
iqueryable ×1
javascript ×1
json ×1
linq-to-sql ×1
postback ×1
security ×1
this ×1
updatepanel ×1