如何阻止UpdatePanel导致整页回发?

我正在使用.NET 3.5并在Community Server 2008框架内构建页面。 在其中一个页面上,我试图让UpdatePanel正常工作。 我直接从ASP.NET网站上获取样本, 通过单击按钮将UpdatePanel中的时间更新为当前时间,但出于某种原因,当我尝试执行该function时,整个页面刷新。 这是我有的: protected void Button1_Click(object sender, EventArgs e) { Label1.Text = “Panel refreshed at ” + DateTime.Now.ToString(); Label2.Text = “Panel refreshed at ” + DateTime.Now.ToString(); } UpdatePanel 每当我点击按钮,确保面板更新 – 但整个页面回发! 我可以看到整个页面闪烁。 我到底做错了什么? 我在嵌套的母版页内,但我不确定这是否是一个问题。 我正在使用的社区服务器框架中是否存在导致所有事件都回发的内容?

通用列表或不同类型的字典

我想要一个将字符串映射到不同类型的通用列表的Dictionary。 即以下列forms: 核心价值 string List string List string List string List … 目前我正在使用Dictionary ,然后从每个字典KeyValuePair pair条目中提取强类型列表,如下所示: Type layerType = pair.Value.GetType().GetGenericArguments()[0]; List objectsClicked = pair.Value as List; 有没有更好的方法来做到这一点? [编辑]正如已经注意到的,上面的内容没有编译,道歉 – 这就是当你在做某些事情的同时提出问题时所得到的。 更多解释。 我正在制作一个基本的空间数据查看器。 最终视图由一组Layer 。 每个图层都提供一个委托来呈现其类型(给定偏移量和比例)以及检查其当前窗口中哪些对象的方法。 对于命中测试,我希望每个图层的列表都被命中了。 该列表将是Point层的List等等……来自所有Layer的命中的分组将是强类型列表的集合。

使用DataContractJsonSerializer反序列化一个简单的JSON数组

我确定这个问题一再被问到,但由于某种原因,我仍然无法让这个问题起作用。 我想反序列化包含单个成员的JSON对象; 一个字符串数组: {“results” : [“a”, “b”]} 这是我正在尝试反序列化的类: public class Whatever { [DataMember(Name = “results”)] public string[] Results { get; protected set; } } 这是Deserialize方法: private static T Deserialize(string json) { var instance = Activator.CreateInstance(); using (var ms = new MemoryStream(Encoding.Unicode.GetBytes(json))) { var serializer = new DataContractJsonSerializer(instance.GetType()); return (T)serializer.ReadObject(ms); } } 像Deserialize(“{\”results\” : [\”a\”, \”b\”]}”)类的调用返回一个初始化的Whatever实例,但Results数组保持为null […]

Selenium RemoteWebDriver c# – System.InvalidOperationException

我有一个使用Selenium.WebDriver的v3.4.0的示例UI测试项目。 当我针对本地驱动程序运行测试时,一切正常,但我想使用Selenium Grid 2来完成工作。 一旦我尝试实例化一个新的RemoteWebDriver,我就会得到一个细节很少的exception。 Driver = new RemoteWebDriver(new Uri(GridUrl), Capabilities); 注意:GridUrl是“ http:// localhost:4444 / wd / hub ” 使用StackTrace引发System.InvalidOperationException,如下所示: at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters) at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities) at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities) at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(Uri remoteAddress, ICapabilities desiredCapabilities) at xxxx.Ui.Tests.SeleniumTests.TestInitialize() in C:\Users\xxxx\Documents\Visual Studio 2015\Projects\xxxx.Ui.Tests\xxxx.Tests\PersonTests.cs:line 38 集线器配置 我在本地运行的集线器v3.4.0具有以下配置: { “port”: 4444, “newSessionWaitTimeout”: -1, […]

C#:检查控制台中是否按下了任何键

Console.Read()和Console.ReadKey()似乎都在等待按下某个键。 如果没有实际要求程序等到按下某个键,我如何检测是否有任何按下?

评论编译成.net中的.exe?

我知道你可以使用.netreflection器来查看用.net创建的代码,但是如果我在评论中添加一些内容,我自己的个人提醒也是在exe中编译的。 我不打算发布我的应用程序的源代码,我知道100%安全的赌注是删除我不想要的所有内容,但我只是想知道是否有人可以对我的评论进行反向工程。

尝试访问Azure Graph API时,权限不足错误

我已经设置了一个Azure AD应用程序,我希望将其与我的Web应用程序一起使用。 我使用以下步骤获得了oAuth令牌: 首先我请求了我的授权码: https://login.windows.net/common/oauth2/authorize?redirect_uri={REDIRECT_URI}&client_id={CLIENT_ID}&response_type=code&state=o365&prompt=admin_consent 这会将用户带到login.windows.net页面,他们必须接受我的应用程序将在其AD上使用的权限。 之后,我使用此端点https://login.windows.net/common/oauth2/token使用C#获取oAuth Token: {“code”: {AUTH_CODE}}, {“state”, {STATE}}, {“grant_type”, “authorization_code”}, {“redirect_uri”, “{REDIRECT_URI}”}, {“client_id”, “1ff78c4b-414f-44c7-834b-09bdae96f440”}, {“client_secret”, “{CLIENT_SECRET}”}, {“resource”, “https://graph.windows.net”} 一切都回来了,我得到了我的oAuth令牌。 但是,当我尝试使用令牌curlGraph API时,我收到此错误 curl https://graph.windows.net/{tenant}/users?api-version=1.5 -H “Authorization: Bearer [AUTH_TOKEN]” {“odata.error”:{“code”:”Authorization_RequestDenied”,”message”:{“lang”:”en”,”value”:”Insufficient privileges to complete the operation.”}}} 我已经尝试了{tenant},“me”别名和“myorganization”别名的实际域名,但它们都不起作用。 “me”别名返回错误,指出’users’资源不存在。 我对这里的问题感到困惑

生产应用程序的PDB文件和“优化代码”标志

我应该何时在生产版本中包含PDB文件? 我应该使用Optimize code标志吗?这会如何影响我从exception中获得的信息? 如果有明显的性能优势,我会想要使用优化,但如果不是,我宁愿有准确的调试信息。 通常为生产应用程序做什么?

模拟和CurrentUser注册表访问

环境:Windows XP SP3,C#,. Net 4.0 问题: 我试图在模拟类中添加对模拟用户注册表配置单元的访问权限,并且我根据被模拟的用户类型遇到问题(或者更准确地说,限制似乎是模仿用户)。 我最初遵循CodeProject的模拟示例,该示例显示在使用通过从LogonUser()获取的原始令牌调用DuplcateToken()生成的重复令牌开始模拟后调用LoadUserProfile() LogonUser() 。 我无法让这个示例在我的环境中使用管理员帐户冒充有限的用户(从示例中包含的屏幕截图看来,它似乎是在Windows Vista \ 7系统上完成的,并且没有提供有关涉及的帐户类型)。 对LoadUserProfile()的调用抛出了“拒绝访问”的错误。 查看userenv.log显示“LoadUserProfile:无法启用还原权限。”错误c0000022“。 MSDN上的LoadUserProfile文档显示调用进程必须拥有SE_RESTORE_NAME和SE_BACKUP_NAME权限,默认情况下只有Administrators和Backup Operators组的成员具有该权限。 (作为旁注,当我尝试稍后将这两个权限添加到Users组时,我仍然收到拒绝访问但是userenv.log显示“DropClientContext:Client [number]没有足够的权限。错误5”我无法’找到任何信息) 鉴于我冒充的用户没有这些权限,我将调用LoadUserProfile()调用到开始模拟之前,这次加载没有问题,我能够在此测试中读取和写入。 考虑到我发现了我的答案,我创建了帐户类型的条件检查,以便在模拟之前调用LoadUserProfile() ,如果当前用户是管理员的成员,或者等到模仿后如果该成员不是管理员的成员(在后面的例子中,我将依赖具有这些特权的模拟用户)。 不幸的是我错了; 我没有发现我的答案。 当我使用反转角色测试呼叫时(用户>管理员)对LoadUserProfile() )的调用仍然失败,并且Access Denied错误和userenv.log显示相同的“LoadUserProfile:无法启用恢复权限。错误c0000061 ”但是这次是一个不同的错误号。 认为默认情况下可能无法在LogonUser()和\或DuplicateToken()返回的令牌上启用权限,我在从WindowsIdentity.GetCurrent(TokenAccessLevels.AdjustPrivileges | TokenAccessLevels.Query).Token )获取的当前用户令牌(在模拟后发生AdjustTokenPrivilege()上添加了两次AdjustTokenPrivilege()调用。 WindowsIdentity.GetCurrent(TokenAccessLevels.AdjustPrivileges | TokenAccessLevels.Query).Token 。 指定了TokenAccessLevels.AdjustPrivileges和TokenAccessLevels.Query ,因为MSDN上的AdjustTokenPrivilege文档指定在调整的令牌上需要它们(我还尝试使用从System.Diagnostics.Process.GetCurrentProcess().Handle检索的句柄通过调用OpenProcessToken()获取令牌。 System.Diagnostics.Process.GetCurrentProcess().Handle但是当用户在模拟内部和外部调用时失败, GetCurrentProcess()是拒绝访问的函数 与WindowsIdentity…Token一起使用时, AdjustTokenPrivilege()成功返回WindowsIdentity…Token但LoadUserProfile()仍然导致拒绝访问(还原权限)。 在这一点上,我不相信AdjustTokenPrivilege()正在做它的工作,所以我开始确定哪些特权是可用的,以及他们使用GetTokenInformation()获得特定令牌的状态,这导致了它自己的一小部分乐趣。 在学习了一些新东西后,我能够调用GetTokenInformation()并打印出一系列权限及其当前状态,但结果有些不确定,因为Restore和Backup在调用AdjustTokenPrivilege()之前和之后都显示了0的属性作为管理员和冒充管理员(奇怪的是,当调用AdjustTokenPrivilege()时,令牌上的其他三个权限从2更改为1,而不是实际调整的值保持为0的其他权限 我删除了对DuplicateToken()的调用,并将其使用的所有位置替换为LogonUser()返回的令牌,以查看这是否有助于测试令牌上的权限LogonUser()和DuplicateToken()令牌是相同。 当我最初编写模拟类时,我在调用WindowsImpersonationContext.Impersonate()一直使用主令牌而没有任何问题,并认为值得一试。 在下面提供的代码示例中,我可以在以管理员身份运行时模拟和访问用户的注册表,但不是相反。 任何帮助将不胜感激。 post前编辑: 我也尝试使用RegOpenCurrentUser() API代替LoadUserProfile() ,并成功使用管理员>自我和管理员>用户模拟,但是当从其他管理员帐户或用户RegOpenCurrentUser()模拟管理员时,返回指向HKEY_USERS的指针\ S-1-5-18(不管是什么)而不是实际的帐户蜂巢。 我猜是因为它实际上没有加载,这让我回到LoadUserProfile() […]

为什么等待异步这么慢?

我终于得到了VS2012并得到了一个简单的演示,并努力检查异步的潜在性能提升并等待,但令我沮丧的是它更慢! 它可能我做错了,但也许你可以帮助我。 (我还添加了一个简单的Threaded解决方案,并且按预期运行得更快) 我的代码使用一个类来根据系统中的内核数量对数组求和(-1)我有4个内核,所以我看到了大约2倍的加速(2.5个线程)用于线程,但是减少了2倍的速度同样的事情,但使用async / await。 代码:(注意,您需要添加对System.Management的引用以使核心检测器工作) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; using System.Management; using System.Diagnostics; namespace AsyncSum { class Program { static string Results = “”; static void Main(string[] args) { Task t = Run(); t.Wait(); Console.WriteLine(Results); Console.ReadKey(); } static async Task Run() { Random random = […]