这看起来很简单,但是如何从子框架中调用顶级html中定义的javascript函数?
top html doc
- 1st level frame
- 2nd level frame
Run Code Online (Sandbox Code Playgroud)
我的顶级html文档有一个名为testFn()的函数.在第二级框架中,我有一个按钮,onclick="top.testFn();"但这不会调用testFn().在Firebug中,如果我使用手表执行top.testFn();它,则说TypeError:testFn()不是函数.
这一切都可以正常工作 - 在这种情况下,我的文档有问题,还是有其他方法在顶级窗口中调用函数?
据我所知,在使用ServiceStack的身份验证时,您通常会在会话开始时进行身份验证,然后将服务器端的会话标记为已通过身份验证.后续Web服务请求将使用该会话ID,而不需要重新身份验证.(如果到目前为止我错了,请纠正我).
使用SessionExtensions.cs中的 Guid.NewGuid()执行新会话ID的生成,这不会生成加密奇妙的值.是否有任何理由不切换使用加密安全值,例如使用RNGCryptoServiceProvider?
更新:
实际上,在进一步考虑之后,ASP.NET不会使用其会话ID来确认请求者是否经过身份验证.它使用FormsAuthenticationTicket,它已经用机器密钥加密并进行了散列(这里是对ASP.NET 2.0进程的一个很好的描述).
我不是安全人员所以如果你要比较ASP.NET Forms Auth提供的安全级别和随机值提供的安全级别,我不知道这有什么含义.我想这一切都归结为密钥和数据长度......而且对表单身份验证进行暴力攻击所需的时间可能要高得多,因为它不需要只尝试一大堆随机数?
我们有一个专为公司内部使用而构建的Google Chrome扩展程序.到目前为止,它已经使用GPO部署,并且在Chrome 33出现之前工作正常.现在,扩展程序未显示在"扩展程序"列表中且未处于活动状态:'(.部署/安装过程是否已针对GPO更改了Chrome 33?我们现在需要做任何不同的事情,或者如何通过GPO部署扩展程序在后Chrome 33世界?
我们按照此处的建议("通过组策略预安装"部分)使用GPO 进行安装,并在此处详细说明.我们设置的GPO ExtensionInstallForcelist,ExtensionInstallWhitelist和ExtensionInstallSources.
我们的扩展程序和更新xml文件未托管在Chrome网上应用店中.Chrome 33中有计划的更改(以保护用户免受恶意扩展),这会强制扩展程序位于Chrome网上应用店中,但是从我们发现的所有文档中,这不应该适用于GPO安装的扩展,如http://www.chromium.org/developers/extensions-deployment-faq所述:
除了通过企业策略或开发人员模式安装之外,用户只能安装Chrome Web商店中托管的扩展程序.
...
此更改后,扩展支持的部署选项有哪些?...对于企业,我们将继续支持组策略以安装扩展,而不管扩展的托管位置. 请注意,用户的计算机必须加入域才能使GPO策略推送生效.
...
以前安装但未托管在Chrome网上应用店中的扩展程序将被硬禁用(即用户无法再次启用这些扩展程序),但通过企业策略或开发人员模式安装的扩展程序除外.
和http://blog.chromium.org/2013/11/protecting-windows-users-from-malicious.html:
我们将继续在开发期间支持本地扩展程序安装以及通过Enterprise策略进行安装,Chrome Apps也将继续得到正常支持.
一旦用户升级到Chrome 33,扩展程序就会消失,因此看起来有关GPO部署的内容已发生变化,但我没有看到有关此更改的任何文档(或显然如何修复我的部署).
我们无法在Chrome网上应用店中托管,因为我们的扩展程序使用的是NPAPI组件,新的Chrome网上应用店扩展程序不再允许使用该组件.迁移到不使用NPAPI的不同架构需要付出巨大努力,因此这不是短期解决方案(尽管计划在中期内).但是,我们已经尝试删除NPAPI组件以检查Chrome 33是否不喜欢它,并且它似乎与此无关.我们只尝试在网址中使用https,也不起作用.
可能与问题346386有关
谢谢你的任何建议!
我无法弄清楚如何设置我的存储桶策略以实现我想要的.任何帮助将非常感激!我希望的规则是:
创建存储桶策略的原因是存储桶中的许多对象具有公共读取ACL(在文件上载时无意中设置,但也可能在将来发生,因此我希望使用存储桶ACL覆盖对象ACL).
忽略temp_public文件夹,我希望我可以这样做:
{
"Version": "2008-10-17",
"Id": "Policy123456789",
"Statement": [
{
"Sid": "Stmt1",
"Effect": "Deny",
"NotPrincipal": {
"AWS": "arn:aws:iam::123456789012:root"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket-name/*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
(123456789012我的AWS账号在哪里),但我对所有使用该存储桶策略的用户都拒绝访问.我想NotPrincipal在这种情况下不起作用?
谢谢你的任何建议!
罗里
更新:跨张贴在这里的AWS论坛,并回答了!
使用windows azure blob存储并通过具有共享访问签名的URL提供访问是正常和伟大的.我可以使用较新的Azure文件存储存储的文件执行相同的操作吗?
在获取斑点REST API说,你可以使用一个共享访问签名,但获取文件REST API文档没有.所以我猜不是.
如果不可能,那么临时访问某人的建议方法是什么?创建一个副本作为blob并使用SAS,或者只是不使用文件存储这种情况?
我正在使用EWS托管API通过交换发送电子邮件.发送带附件的项目时,我先做一个CreateItem然后再做一个SendItem.大多数情况下,这种方法很好,但有时候项目会保留在"草稿"文件夹中,即使EWS报告SendItem成功.我怎么知道这里发生了什么?
我从跟踪中看到的EWS消息是第一个CreateItem:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<t:RequestServerVersion Version="Exchange2013" />
</soap:Header>
<soap:Body>
<m:CreateItem MessageDisposition="SaveOnly">
<m:SavedItemFolderId>
<t:DistinguishedFolderId Id="drafts">
<t:Mailbox>
<t:EmailAddress>amailbox@thedomain.com</t:EmailAddress>
</t:Mailbox>
</t:DistinguishedFolderId>
</m:SavedItemFolderId>
...
</m:CreateItem>
</soap:Body>
</soap:Envelope>
</Trace>
Run Code Online (Sandbox Code Playgroud)
我得到了成功回复:
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<h:ServerVersionInfo MajorVersion="15" MinorVersion="0" MajorBuildNumber="1104" MinorBuildNumber="3" Version="V2_22" xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<m:CreateItemResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<m:ResponseMessages>
<m:CreateItemResponseMessage ResponseClass="Success">
<m:ResponseCode>NoError</m:ResponseCode>
<m:Items>
<t:Message>
<t:ItemId Id="AAMkADExMmY0MTgzLWJmZmUtNDcxNi1iOTk0LWMzZTU3M2I3NjBkMwBGAAAAAABL/dBAdDByRbztYn12Cy/4BwCJZGY3HQ5zQpbF9WoRXD0sAAAAAAEPAACJZGY3HQ5zQpbF9WoRXD0sAAA6HNVuAAA=" ChangeKey="CQAAABYAAACJZGY3HQ5zQpbF9WoRXD0sAAA6JC4z" />
<t:Attachments>
<t:FileAttachment>
<t:AttachmentId Id="AAMkADExMmY0MTgzLWJmZmUtNDcxNi1iOTk0LWMzZTU3M2I3NjBkMwBGAAAAAABL/dBAdDByRbztYn12Cy/4BwCJZGY3HQ5zQpbF9WoRXD0sAAAAAAEPAACJZGY3HQ5zQpbF9WoRXD0sAAA6HNVuAAABEgAQAGiKX5lgtuFLgfIBgyg4IwM=" />
</t:FileAttachment> …Run Code Online (Sandbox Code Playgroud) 我正在.net 2.0中编写一个Windows服务.
我应该做内OnStart()如果由于某种原因,我不希望我的服务启动方法?我可以简单地调用Stop()基类(ServiceBase)的方法吗?我已经尝试过了,并且获得了一些有趣的内存访问异常.是否需要启动一个单独的线程来调用该Stop()方法?
我想生成一个序列化程序集或 .cs 文件来使用 XmlAttributeOverrides 序列化我的类型,然后直接在我的项目中引用这个程序集/.cs 文件而不是使用 XmlSerializer 来执行 xml 序列化/反序列化。这是因为序列化使用 XmlAttributeOverrides,并且当您创建具有覆盖的 XmlSerializer 时,它不会查找现有程序集,但会始终重新生成一个程序集(参考)。我的程序在无法运行 csc.exe 的环境中运行,因此我无法在运行时生成序列化程序集。
需要明确的是,我不能只使用 sgen.exe,因为它只会生成执行默认 xml 序列化/反序列化的程序集。如果您创建一个 XmlSerializer 并在构造函数中传递它 XmlAttributeOverrides则 Serialize() 和 Deserialize() 不使用由 sgen.exe 生成的程序集,因此 sgen.exe 对我来说似乎没有用。使用覆盖时 XmlSerializer 将始终生成新程序集。
那么,有没有一种方法可以调用 XmlSerializer 或其他类并让它创建一个可以包含在我的项目中的 .cs 文件或 dll?如果可能的话,我想自动化这个过程,这样我就不需要在更改正在序列化的类型时进行手动更改。我不能使用 sgen.exe /k 因为它只为一种类型生成默认的 XmlSerializer 而不是我需要的使用覆盖的类型。是否有另一种方法来生成或捕获由 XmlSerializer 创建的 .cs 文件?
SQL Server convert()函数可以将varbinary数据转换为具有以下编码的字符串:
每个二进制字符都转换为两个十六进制字符.如果转换表达式的长度大于data_type长度,则将被截断.
如果data_type是固定大小的字符类型,并且转换结果的长度小于data_type的长度; 空格被添加到转换表达式的右侧以保持偶数个十六进制数字.
字符0x将添加到样式1的转换结果的左侧.
例如,输出可能看起来像'0x389D7156C27AA70F15DD3105484A8461A2268284'.我怎样才能在C#中轻松做同样的事情?即使用相同类型的编码将byte []转换为字符串?
我有一个asp.net应用程序,它使用水晶报告显示报告.应用程序在我的本地PC上正常工作.我在我们的专用服务器上部署了这个应用程序,并在专用服务器上安装了水晶报告运行时引擎.当我尝试按报告以查看报告,我收到上述错误.我将文件夹"C:\ Windows\Temp"的权限更改为完全控制(通过选择"temp"文件夹的属性,所有用户的完全控制权限(IIS-users,network..etc)).我不确定这是否是给这个文件夹提供完全控制权限的正确方法(我对网络概念的了解不多).但是我仍然得到同样的错误.错误是:
检索具有CLSID {4DB2E2BB-78E6-4AEA-BEFB-FDAAB610FD1B}的组件的COM类工厂由于以下错误而失败:80070005访问被拒绝.(来自HRESULT的异常:0x80070005(E_ACCESSDENIED)).
描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.UnauthorizedAccessException:检索具有CLSID {4DB2E2BB-78E6-4AEA-BEFB-FDAAB610FD1B}的组件的COM类工厂由于以下错误而失败:80070005访问被拒绝.(来自HRESULT的异常:0x80070005(E_ACCESSDENIED)).
ASP.NET无权访问所请求的资源.考虑将资源的访问权限授予ASP.NET请求标识.ASP.NET具有基本进程标识(IIS 5上通常为{MACHINE}\ASPNET,IIS 6和IIS 7上为网络服务,IIS 7.5上已配置的应用程序池标识),如果应用程序未模拟,则使用该标识.如果应用程序模拟通过,则标识将是匿名用户(通常为IUSR_MACHINENAME)或经过身份验证的请求用户.
要授予对文件的ASP.NET访问权限,请在资源管理器中右键单击该文件,选择"属性",然后选择"安全"选项卡.单击"添加"以添加适当的用户或组.突出显示ASP.NET帐户,并选中所需访问的框.
.net ×6
c# ×2
.net-2.0 ×1
amazon-s3 ×1
asp.net ×1
azure ×1
encoding ×1
frames ×1
guid ×1
hosting ×1
javascript ×1
security ×1
service ×1
servicestack ×1
sql-server ×1