在我正在构建的ASP.NET Web应用程序中实现的UpdatePanels中发生异常的情况下,它们会在页面上导致JavaScript错误,并在警报中提供一些高级错误输出.这对于开发来说是可行的,但是一旦系统处于生产状态,由于多种原因显然没有好处.我可以使用Try Catch等来控制Javascript错误,但在某些情况下,我想在主页面上执行操作以支持用户体验.
我如何优雅地处理UpdatePanels中出现的错误,以提供无缝和Javascript无错误的实现?
我正在构建的ASP.NET Web应用程序的用户可以选择颜色以用于某些元素(例如按钮/标题)以促进某种程度的个性化.
问题是,默认情况下,这些图层上的文字是黑色的...我要做的是评估用户通过选择器选择的HEX值,并以编程方式在黑白文本之间切换 - 这可以是JavaScript,或代码背后.
问题的关键在于我只是不确定如何评估HEX以确定所选颜色与黑色的接近度是否太接近使用黑色文本.
有任何想法吗?
在我的ASP.NET Web应用程序中,我用SHA512哈希我的用户密码.
尽管SO'ing和谷歌搜索很多我不清楚我应该如何将它们存储在数据库中(SQL2005) - 下面的代码显示了我如何创建哈希作为字符串的基础知识我现在正在将其插入到将数据库放入Char(88)列,因为它似乎是一致创建的长度
将它作为String保存是最好的方法,如果是这样的话,SHA512上总会有88个字符(因为我在Google上看到了一些奇怪的东西)?
Dim byteInput As Byte() = Encoding.UTF8.GetBytes(sSalt & sInput)
Dim hash As HashAlgorithm = New SHA512Managed()
Dim sInsertToDatabase As String = Convert.ToBase64String(hash.ComputeHash(byteInput))
Run Code Online (Sandbox Code Playgroud) SQL Server 2008数据库设计问题.
我正在定义一种服务的体系结构,其中站点用户可以管理他们拥有的多个网站上的大量数据(平均100MB,每个站点最多1GB).我正在考虑是否拆分数据库,以便核心站点管理表(用户,付款,联系方式,登录详细信息,产品等)保存在一个数据库中,与客户自己的网站相关的数据库是单独保存的数据库.
我看到了一个可能的好处,我可以分发硬件架构,为网站数据库中的繁重工作提供更多的肉,使网站管理数据库处于更合适的区域.但我也意识到失去了通过外键直接将网站与客户联系起来的能力(据我所知,这不能跨数据库完成?).
因此,问题有两个 - 一般来说,这种场景中的数据应该分成多个数据库,还是应该全部保存在一个数据库中?
如果将其拆分为多个,是否有建议的方法来保护系统在数据库层的完整性和安全性,以确保两者之间存在很强的关系?
谢谢你的帮助.
我正在尝试动态创建命令按钮,但单击有问题的按钮似乎没有引发相应的CommandButton_Click事件.我注意到在SO的示例中,为Button.OnCommand以及CommandName和CommandArgument设置了属性,但它不是intellisense中的选项.
所以问题是,我在这里做错了什么(下面的代码没有OnCommand),是否以其他方式访问 - 如果是这样,为什么我发现的例子都显示为.OnCommand?
编辑:进一步的帮助,我添加了处理程序,但事件仍未触发.这些按钮位于UpdatePanel中,并在每次回发时重建(与处理程序一起).我创建了一个简化的例子,我正在做的事情如下所示:如果按钮事件触发,它会将"EVENT FIRED"写入txtTestFired文本框 - 足以说我从未见过它.这真的让我疯狂,任何帮助都非常感激.
.aspx文件
<form id="frmMain" runat="server">
<asp:ScriptManager ID="scmAddProducts" runat="server">
</asp:ScriptManager>
<asp:updatepanel runat="server">
<ContentTemplate>
<asp:TextBox ID="txtProduct" runat="server"></asp:TextBox>
<br />
<asp:Button ID="btnAddItem" runat="server" Text="Add Line" />
<asp:TextBox ID="txtTestFired" runat="server"></asp:TextBox>
<br />
<br />
<asp:Panel ID="pnlAddedLines" runat="server"></asp:Panel>
</ContentTemplate>
</asp:updatepanel>
</form>
Run Code Online (Sandbox Code Playgroud)
.aspx.vb文件
Protected Sub btnAddItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAddItem.Click
Dim dtItems As New System.Data.DataTable
If Session("Items") Is Nothing Then
Dim dcColumn As New System.Data.DataColumn
dcColumn.DataType = Type.GetType("System.String")
dcColumn.ColumnName = "Product"
dtItems.Columns.Add(dcColumn)
Session("Items") …Run Code Online (Sandbox Code Playgroud) 好的,所以刚刚接受了密钥并且有一个44字符长的加密字符串,我现在无法解密(aarrgghh):
要解密的数据长度无效.
环顾四周并阅读各种帖子后,看起来好像转换为Base64String可能是问题,但我看不出它出错了 - 我看到的许多解决方案看起来与我的相同.再次,我真的很感激任何帮助 - 下面的摘录:
加密/解密功能
Private byteKey As Byte() = Encoding.UTF8.GetBytes("B499F4BF48242E05548D1E4C8BB26A2E")
Private byteIV As Byte() = Encoding.UTF8.GetBytes(",%u'm&'CXSy/T7x;4")
Private Function Rijndael(ByVal sInput As String, ByVal bEncrypt As Boolean) As String
' Create an instance of encyrption algorithm.
Dim _rijndael As New RijndaelManaged()
' Create an encryptor using key and IV - already available in byte() as byteKey and byteIV
Dim transform As ICryptoTransform
If bEncrypt Then
transform = _rijndael.CreateEncryptor(byteKey, byteIV)
Else
transform = _rijndael.CreateDecryptor(byteKey, …Run Code Online (Sandbox Code Playgroud) asp.net ×5
cryptography ×2
sql-server ×2
asp.net-ajax ×1
button ×1
css ×1
database ×1
encryption ×1
exception ×1
hash ×1
javascript ×1
sha512 ×1
sql ×1
updatepanel ×1
vb.net ×1
webforms ×1