小编key*_*rdP的帖子

阻止浏览器填充包含详细信息的文本框

我遇到了一个非常讨厌的问题,我希望这只是我错过的一个设置.我有一个ASP.NET应用程序,允许用户在不同的地方输入他们的用户名/密码(例如登录,更改密码,更改用户名等).当我登录时,浏览器询问我是否要存储用户详细信息.通常,我点击"否",但这次我决定点击"是".现在,我的表单中的某些文本框预先填入了用户名或密码.是否可以删除它们,因为它们有时会出现在不应预先填充的文本框中.我尝试过设置AutoCompleteType=none,Text=''但它仍然预先填充.除了相同的文本框CssClass和密码框之外,文本框没有多少共同之处TextMode=password.名称不同,但有时它们包含单词name(例如fullName,userName).有没有办法阻止浏览器填充某些文本框?

谢谢

asp.net textbox autocomplete details browser-cache

17
推荐指数
1
解决办法
2万
查看次数

无法打开RSA密钥容器

我一直在运行XP home的旧机器上开发一个ASP.NET站点.我最近得到了一台新的Win 7 PC,并将我的所有项目文件都移动了.当我尝试运行该项目时,我收到以下错误消息:

"Failed to decrypt using provider 'MyRsaProtectedConfigurationProvider'. Error message from the provider: The RSA key container could not be opened."

我意识到我使用a加密了我的web.config文件的一部分RSA encryption.这就是现在问题所在.我不确定如何再次使用该键,以便我可以在我的新机器上使用它.我从旧机器导出密钥并使用以下方法导入它:

aspnet_regiis -pi "RSAProviderName" "C:\RSA_configkey.xml"

这是成功导入的.然后我运行了该项目,但出现了相同的错误消息.我认为这可能是一个许可的事情,所以我跑了:

aspnet_regiis -pa "RSAProviderName" "\Desktop" -full

这也很成功,但我仍然得到错误.从阅读,我看到人们使用"ASPNET"而不是"\桌面"(桌面是我的机器名称).但是,当我尝试使用"ASPNET"时,我得到:

No mapping between account name and security IDs was done. <Exception from HRESULT = 0x80070534

在修复之前我无法完成项目,因此非常感谢任何帮助.谢谢!

asp.net permissions configuration rsacryptoserviceprovider

15
推荐指数
2
解决办法
4万
查看次数

处理"潜在危险的Request.Form值......"

什么是处理错误的最佳方法,例如

从客户端检测到一个潜在危险的Request.Form值"

在ASP.NET中?

我想保持验证,因为我的表单没有正当理由允许HTML字符.但是,我不太确定如何以更友好的方式处理此错误.我尝试在一个处理它,Page_Error但据我所知,这发生在较低级别的部分,所以该Page_Error功能永远不会触发.

因此,我可能不得不求助于Application_Error在我的Global.asax文件中使用.如果这是处理该错误的唯一方法,有没有办法专门处理这个错误?我不想以同样的方式处理所有应用程序错误.

谢谢

asp.net error-handling application-error

14
推荐指数
1
解决办法
8991
查看次数

在WP7项目中找不到HttpWebRequest.GetResponse()

我正在尝试使用HttpWebRequest发送GET请求.
我在网上找到了很多例子(例如,这一个 ......只是简单介绍一下这个Scrape()方法).他们基本上都做同样的事情:

HttpWebRequest使用WebRequest.Create(URL)创建一个对象并将其强制转换为HttpWebRequest,然后使用该GetResponse()方法获取响应HttpWebRequest.

事情GetResponse()似乎并不存在于任何一个HttpWebRequestWebRequest(它是它的基类).我唯一的选择是使用BeginGetResponse().

我发现的唯一的事情GetResponse()是同步,而BeginGetResponse()异步,Silverlight只允许异步.嗯,这对我没有任何帮助,因为整个事情是一个XNA项目,这是我在里面创建的一个简单的C#类.
更确切地说,这是一款在XNA 4.0中创建的Windows Phone游戏

HttpWebRequest webRequest = WebRequest.Create(URL) as HttpWebRequest; 
StreamReader responseReader = new StreamReader( 
         webRequest.GetResponse().GetResponseStream());
Run Code Online (Sandbox Code Playgroud)

有没有人知道为什么我没有GetResponse()

c# xna http httpwebrequest windows-phone-7

13
推荐指数
1
解决办法
1万
查看次数

使用属性调用方法

我有各种各样的方法,在继续自己的实现之前都需要执行相同的功能.现在我可以在每种方法中实现这些功能,但我想知道是否有办法利用它attributes来做到这一点?作为一个非常简单的示例,所有网络呼叫都必须检查网络连接.

public void GetPage(string url)
{
   if(IsNetworkConnected())
      ...
   else
      ...           
}
Run Code Online (Sandbox Code Playgroud)

这可行,但我必须为IsNetworkConnected使用网络的每个方法调用该方法并单独处理它.相反,我想这样做

[NetworkCall]
public void GetPage(string url)
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

如果网络不可用,则会调用错误方法,但会GetPage被忽略,否则会GetPage被调用.

这听起来非常像Aspect Orientated Programming,但我不想为几个调用实现整个框架.这更像是一个学习练习而不是实现练习,所以我很好奇这样的事情是如何最好地实现的.

c# architecture reflection aop attributes

13
推荐指数
1
解决办法
7829
查看次数

为什么String.Contains不直接调用最终的重载?

String.Contains方法内部应该是这样

public bool Contains(string value)
{
   return this.IndexOf(value, StringComparison.Ordinal) >= 0;
}
Run Code Online (Sandbox Code Playgroud)

IndexOf调用的重载看起来像这样

public int IndexOf(string value, StringComparison comparisonType)
{
   return this.IndexOf(value, 0, this.Length, comparisonType);
}
Run Code Online (Sandbox Code Playgroud)

这里再次调用最终重载,然后CompareInfo.IndexOf使用签名调用相关方法

public int IndexOf(string value, int startIndex, int count, StringComparison comparisonType)
Run Code Online (Sandbox Code Playgroud)

因此,调用最终的重载将是最快的(尽管在大多数情况下可以被认为是微优化).

我可能会遗漏一些明显的东西,但为什么该Contains方法不会直接调用最终的重载,因为在中间调用中没有进行其他工作,并且在两个阶段都可以获得相同的信息?

唯一的好处是,如果最终过载的签名发生变化,只需要进行一次更改(中间方法的更改),或者设计是否还有更多?

从评论中编辑(有关速度差异说明,请参阅更新2)

为了澄清的性能差异我得到的情况下,我犯了一个错误的地方:我跑这个基准测试(循环5次,以避免抖动偏差),并使用该扩展方法来比较的String.Contains方法

public static bool QuickContains(this string input, string value)
{
   return input.IndexOf(value, 0, input.Length, StringComparison.OrdinalIgnoreCase) >= 0;
}
Run Code Online (Sandbox Code Playgroud)

循环看起来像这样

for (int i = 0; i < 1000000; i++) …
Run Code Online (Sandbox Code Playgroud)

c# oop string language-design contains

13
推荐指数
1
解决办法
423
查看次数

图像上传 - 安全问题

我正在开发一个ASP.NET Web应用程序,并希望用户能够从本地系统上传图像,或者将URL传递给图像.图像可以是JPG或PNG.这样做我应该关注哪些安全问题?我已经看到了在JPG文件中嵌入代码的各种方法.C#(或外部库)中是否有任何方法可以确认文件是JPG/PNG,否则会抛出错误?至少,我正在制作保存上传图像不可浏览的目录,并将最大大小限制为1mb,但我想实施进一步的检查.

谢谢你的建议.

c# asp.net security image image-uploading

12
推荐指数
2
解决办法
5421
查看次数

队列ForEach循环抛出InvalidOperationException

我以前没有Queues<T>任何真正的学位,所以我可能会遗漏一些明显的东西.我试图迭代Queue<EnemyUserControl>这样(每一帧):

foreach (var e in qEnemy)
{
     //enemy AI code
}
Run Code Online (Sandbox Code Playgroud)

当敌人死亡时,敌方用户控制会引发我订阅的事件并执行此操作(队列中的第一个敌人被设计删除):

void Enemy_Killed(object sender, EventArgs e)
{      
     qEnemy.Dequeue();

     //Added TrimExcess to check if the error was caused by NULL values in the Queue (it wasn't :))
     qEnemy.TrimExcess();
}
Run Code Online (Sandbox Code Playgroud)

然而,出列方法被调用后,我得到InvalidOperationExceptionforeach循环.当我使用时Peek,没有错误,所以它必须对Queue本身的更改做一些事情,因为Dequeue删除了对象.我最初的猜测是,它正在抱怨我正在修改一个由Enumerator迭代的集合,但是这个集合是在循环之外执行的吗?

可能导致此问题的任何想法?

谢谢

.net c# queue silverlight invalidoperationexception

12
推荐指数
3
解决办法
3万
查看次数

C#将文本保存为语音到MP3文件

我想知道是否有办法将文本语音数据保存为mp3或Wav文件格式以便以后播放?

SpeechSynthesizer reader = new SpeechSynthesizer();
reader.Rate = (int)-2;
reader.Speak("Hello this is an example expression from the computers TTS engine in C-Sharp);
Run Code Online (Sandbox Code Playgroud)

我试图将其保存在外部,以便我可以稍后再播放.做这个的最好方式是什么?

c# text-to-speech

12
推荐指数
2
解决办法
1万
查看次数

以编程方式设置Segoe UI Symbol字体

我学习Windows Phone编程.自从我获得Lumia 610(WP7.8)以来,我用7.1 SDK编写.问题是我希望我的应用程序使用箭头符号连接字符串,该符号以Segoe UI Symbol字体提供.但是当我尝试以编程方式强制程序使用Segoe UI字体时,它不起作用(它只显示&#x 2708;字符串).当我强迫使用例如Comic Sans MS时 - 没有问题.

this.lExercise.Text = "zxcv";
                this.lExercise.Inlines.Add(new Run()
                {
                    Text = "&#x2708;",
                    FontFamily = new FontFamily("Segoe UI Symbol")                       
                });
                this.lExercise.Inlines.Add(new Run() { Text = " asdf", FontSize = 36 });
Run Code Online (Sandbox Code Playgroud)

任何想法赞赏:)

c# windows-phone-7 windows-phone

10
推荐指数
1
解决办法
7858
查看次数