这里有点奇怪的情况 - 我有一个用Vue编写的网站,我想要演示一个我写的反应库.我可以通过包装避免服务器端渲染(SSR),ReactDOM.hydrate(ReactApp, document.getElementById('react'area'))但我不想这样做.我想渲染一切SSR,但我不知道它是如何可能的.
这是我的vue的renderOnServer.js:
process.env.VUE_ENV = 'server'
const fs = require('fs')
const path = require('path')
const filePath = './App/dist/server.js'
const code = fs.readFileSync(filePath, 'utf8')
const vue_renderer = require('vue-server-renderer').createBundleRenderer(code)
//prevent XSS attack when initialize state
var serialize = require('serialize-javascript')
var prerendering = require('aspnet-prerendering')
module.exports = prerendering.createServerRenderer(function (params) {
return new Promise((resolve, reject) => {
const context = {
url: params.url,
absoluteUrl: params.absoluteUrl,
baseUrl: params.baseUrl,
data: params.data,
domainTasks: params.domainTasks,
location: params.location,
origin: params.origin,
xss: serialize("</script><script>alert('Possible XSS vulnerability from user …Run Code Online (Sandbox Code Playgroud) 我在一台服务器上有一个身份服务器 (v4),在不同的服务器和域上有一个 Web 应用程序。我只需要 Windows 身份验证,使用重定向一切正常。但是,我注意到如果 cookie 尚未过期,则静默登录有效。
如果 cookie 已过期,则当前需要重定向,这可以正常工作。然而不幸的是,这意味着如果用户没有在当前屏幕上保存数据,除非我实现缓存机制,否则他们将丢失它。相反,我想设置一个隐藏的 iframe,它只是导航到身份服务器,如果用户在公司基础设施内(他们总是这样),则自动登录。
经过数小时的调试,我发现虽然 cookie 是从 iFrame 正确发送的,但任何 SET 似乎都不起作用 - 它们在 chrome 调试器中作为响应 cookie,但不会在下一次重定向时作为请求 cookie 发送我不知道为什么。
在回应:
Cookie 选项:SameSite Lax、HTTP 真、安全真、路径 /
标题:
内容安全策略:default-src 'self'; object-src '无'; 框架-src 本地主机:44388;frame-ancestors 'self' https://localhost:44388/ ; 沙箱允许形式允许同源允许脚本;base-uri '自我';
持久身份验证:true
编译指示:无缓存
推荐人政策:无推荐人
WWW-Authenticate : 协商 oRswGaADCgEAoxIEEAEAAABJ+0p/zH0aeAAAAAA=
X-Content-Security-Policy : default-src 'self'; object-src '无'; 框架-src **本地主机:44388;frame-ancestors 'self' https://localhost:44388/ ; 沙箱允许形式允许同源允许脚本;base-uri '自我';
X-Content-Type-Options : nosniff
X-Frame-Options : ALLOW-FROM https://localhost:44388/
我已经在signalr向外扩展阅读了大量和收藏似乎是那些中提到: http://www.asp.net/signalr/overview/signalr-20/performance-and-scaling/scaleout-in-signalr 即以下服务总线: - SQL - Redis - Azure
问题甚至在文中说明:"使用背板,最大消息吞吐量低于客户端直接与单个服务器节点通信时的吞吐量.这是因为背板将每条消息转发到每个节点,因此背板可以成为瓶颈."
我正在创造......等待它......是的!聊天应用程序.我希望能够将其扩展到数百万用户.无论我是否做大(哈!),我都计划逐步记录这个过程.现在我已准备好大部分应用程序,我想知道这个扩展问题.我看了这个非常有用的视频:
http://channel9.msdn.com/Events/Build/2013/3-502
跳到55分钟."自定义横向扩展".以及其他想法,如过滤消息总线.
现在希望你很兴奋,而不是因为无聊而无法自杀...我的想法是做如下: - 每个受欢迎的房间给一个服务器 - 每个房间因此可以轻松应对交通和信号灯可以很好地广播到客户端并将消息日志存储到GROUPS服务器(即每组保存所有组消息) - 然后私人消息需要使用背板或服务器推送 - 因此用户连接将需要更新sql server DB(很容易)和通过ajax而不是signalr发布的数据
但是,我想探索所有选项.(如果你有它们,请发布任何更好的想法)我也想尝试测试REDIS的私人消息.为什么?!!因为如果我希望用户能够拥有私人消息组...并且用户1,2和3都非常烦人并且在服务器1,2和3上.(啊,你很少......!)为了更好虽然性能,我想实现一个Redis消息过滤器,只发送到服务器上的客户端!
那么,我究竟在寻找什么?基本上我需要资源.我找不到任何有用的Redis消息总线示例(asp.net示例没有过滤器.是的,我可以添加AddResolverblabla行!:))
我还需要以下示例: - 服务器到服务器ajax帖子:我是服务器noobie! - 一个负载均衡器示例,用于指定每个聊天室(或只是某个页面)的特定空间 - Redis消息总线可以处理多少条消息?即使使用过滤器,它也很容易变成瓶颈吗?我找不到任何带过滤器的表演的例子
最后我需要你的大脑!;)如果你坐在那里认为有更好的方法,请告诉我.
非常感谢所有读过这篇文章的人,我期待着你们的回复.(如果你发现它有用,请向上投票!有很多论坛有类似的问题,但没有正确的答案)
有没有办法覆盖HttpContext.Current.User.Identity添加另一个属性(屏幕名称)?
我的应用程序使用Identity并且我将唯一标识保留为电子邮件.我将用户数据(例如名/姓)存储在单独的"Profile"表中.有没有办法将这些信息存储在某个地方HttpContext.Current?
它不一定需要在内User.我有一个搜索,发现有一个HttpContext.Current.ProfileBase.虽然不确定如何使用它 - 我真的不希望所有多余的东西都带有基础.
以下面的例子为例
public class MyClass
{
private MyEnum _sharedEnumVal { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果MyClass中的方法在不同的线程上运行并且读取/更新了_sharedEnumVal,我是否正确地说需要一个锁或其他机制来保持变量线程像其他原语一样安全或者枚举是否特殊?
谢谢
在我的web.config打击你可以看到redirectMode ="ResponseRewrite".我读到这是保存状态代码所需要的.不幸的是,只要我有它,我得到:
"处理您的请求时发生异常.此外,在执行第一个异常的自定义错误页面时发生了另一个异常.请求已终止."
省略此变量成功将我重定向到〜/ Error/Index.cshtml但响应为200. doh.任何方向都将非常感谢,谢谢.
<system.web>
<compilation debug="true" targetFramework="4.5" />
<customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~/Error/Index">
<error statusCode="404" redirect="~/Error/Index"/>
<error statusCode="500" redirect="~/Error/Index"/>
</customErrors>
<httpRuntime targetFramework="4.5" />
</system.web>
<system.webServer>
<httpErrors errorMode="Custom" existingResponse="Auto" defaultResponseMode="ExecuteURL">
<remove statusCode="403"/>
<remove statusCode="404"/>
<remove statusCode="500"/>
<error statusCode="403" path="~/Error/Index" responseMode="File"/>
<error statusCode="404" path="~/Error/Index" responseMode="File"/>
<error statusCode="500" path="~/Error/Index" responseMode="File"/>
</httpErrors>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
在我的filterconfig.cs中:
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
// does this conflict?
filters.Add(new HandleErrorAttribute());
}
}
Run Code Online (Sandbox Code Playgroud) 我读了以下内容:
"如果用户可以与页面上的许多元素进行交互,则向每个元素添加事件侦听器可能会占用大量内存并降低性能......
...因为影响包含元素的事件可以将事件处理程序放在包含元素上,并使用事件目标属性来查找事件发生在哪个子节点上"
那么,在主体上执行一次单击事件然后委派正确的函数有什么缺点呢?
我在这里有一个例子:http://jsfiddle.net/jkg0h99d/3/
死锁的代码备份:
HTML:
<div id="test" class="box">gfdgsfdg </div>
<div id="test2" class="box">gfdsgfdsg</div>
<div id="test3" class="box">fdsgfdsgg</div>
<ul id="test4" class="box">
<li id="test5" class="box">fsgfdsg</li>
<li id="test6" class="box">gfdsgfds</li>
<li id="test7" class="box">gfdsgfds</li>
<li id="test8" class="box">gfdsgfds</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
JS:
var body = document.body;
if (body.addEventListener) {
body.addEventListener('click', function (e) {
delegate(e, "click");
}, false);
} else {
body.attachEvent('onclick', function (e) {
delegate(e, "click");
}, false);
}
function delegate(e) {
var sourceNode = e.target || e.srcElement;
var id = sourceNode.id;
switch (id) { …Run Code Online (Sandbox Code Playgroud) 我无法找到如何使用 dotnet core(最好是 3.1)从 AWS 事件桥接收事件的示例。谢谢